Come arrivare php URI della richiesta senza percorso del contesto?

$_SERVER['REQUEST_URI'] restituisce URI con il percorso del contesto.

Per esempio, se l’URL di base di un sito web è http://localhost:8080/sitename/ (cioè il percorso del contesto è sitename), e io uso $_SERVER['REQUEST_URI'] per http://localhost:8080/sitename/portfolio/design, tornerà /sitename/portfolio/design.

Sono poi esplode il risultato di interpretare il mio clean Url:

$page=$_SERVER['REQUEST_URI'];
$segments=explode('/',trim($page,'/'));

$sitePage = $segments[1];//portfolio

Questo sta lavorando bene per il mio locale ambiente di test, ma sul server di produzione, $segments[1] deve diventare $segments[0]

Per utilizzare lo stesso codice in fase di sviluppo e di produzione, c’è un modo per avere solo questa parte /portfolio/design, cioè l’URI senza percorso del contesto?

OriginaleL’autore Brendan Coffey | 2012-05-04

3 Replies
  1. 9

    È possibile utilizzare virtual hosts in modo il vostro sito di prova sarà:

    http://sitename.localhost:8080/

    Che modo i percorsi assoluti (rispetto al web-root) sarà lo stesso sul test server e il server di produzione.

    Come-dipende dal server di prova che si sta utilizzando.

    OriginaleL’autore jeroen

  2. 4

    Ho risolto questo confrontando SCRIPT_NAME e REQUEST_URI come questo:

    ///sitename/index.php
    $path = explode('/', trim($_SERVER['SCRIPT_NAME'], '/'));
    
    ///sitename/portfolio/design
    $uri  = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
    
    foreach ($path as $key => $val) {
        if ($val == $uri[$key]) {
            unset($uri[$key]);
        } else {
            break;
        }
    }
    
    //portfolio/design
    $uri = implode('/', $uri);

    Sto cercando di indovinare che si hanno .htaccess routing index.php

    Speranza che aiuta.

    OriginaleL’autore Lex

  3. 0

    Direi che è il modo per fare quello che si voleva ottenere qualche parte dell’URI.

    Vorrei suggerire di impostare un host virtuale (supponendo che si sta utilizzando Apache), o il Nome o l’Indirizzo base. Quindi si potrebbe avere qualcosa di simile http://127.0.0.42/portfolio/design o, con un po ‘ di editing del host file sul sistema anche http://sitename/portfolio/design. Allora il vostro ambiente di sviluppo simile a quello di produzione.

    Speranza che aiuta.

    OriginaleL’autore Havelock

Lascia un commento