Come può un URL del tipo http: lavoro //localhost/index.php/articles/edit/1/my-first-article senza un .htaccess?
Domanda
Non capisco questo:
http: //localhost/index.php/articles/edit / 1 / my-prima-articolo
Questo URL è citato come un esempio nel Kohana documentazione quadro . Ho curiosato negli archivi della mia installazione, e non c'è .htaccess oltre la mia uno che non ha nulla a che fare con questo.
Quindi, come può essere che un index.php si chiama ma poi, come parametri, la roba sembra directory aggiunto all'URL? Non sembra "reale".
O è solo il modo nativo PHP / stuff / HTTP Apache funziona davvero? Da quanto ho capito, / è sempre dicendo "hey, una directory!". Rende davvero a zero senso per me ... come è possibile? O hanno qualche parte un .htaccess che io proprio non riesco a vedere / trovare?
Soluzione
In PHP è possibile ottenere i dati dopo il nome del file con la $_SERVER["PATH_INFO"]
variabile. Questo consente di ottenere in pratica le informazioni senza dover utilizzare GET variabili, il che significa che Google e co penserà che si sta utilizzando le pagine statiche. Questo è fondamentalmente in alternativa al mod_rewrite
che spesso viene abilitato mentre mod_rewrite
è più spesso non è attivato.
Questo può essere evidente a voi, ma non è stato subito a me, questo non funziona correttamente sulle pagine di indice a meno che non si utilizza il nome del file. Per esempio, http://example.com/test/my/get/params
non funziona, mentre http://example.com/test/index.php/my/get/params
volontà.
Altri suggerimenti
direttiva AcceptPathInfo
Questa direttiva controlla se le richieste che contengono finale Informazioni percorso che segue un (O file inesistente nome del file attuale in una directory esistente) sarà accettata o respinta. il trailing Informazioni percorso può essere fatta a disposizione script nella PATH_INFO variabile d'ambiente.
Per esempio, assumere la posizione / test / punta a una directory che contiene solo il singolo file here.html. Poi le richieste di /test/here.html/more e /test/nothere.html/more sia raccogliere / Più come PATH_INFO.
Quindi presumo questa impostazione è attivata da qualche parte come in httpd.conf. Si noti che questo, come mod_rewrite, può essere attivata / configurato in un certo numero di posti - vedi qui .
AcceptPathInfo è attivata per il server. :)
Non sto usando Kohana, quindi non so se il mio metodo sarà di alcuna utilità, ma quando un server non supporta i file .htaccess (o riscrivere le regole) il mio 'quadro' genera URI di simile a questo:
http://www.domain.com/? / articoli / modificare / 1 / my-prima-articolo (si noti il?)
E 'un metodo simile a quello utilizzato dal framework Rana, basta analizzare $_SERVER['REQUEST_URI']
(o $_SERVER['HTTP-X-REWRITE-URL']
su server Windows) ed esplodere sul '/'.
Questo metodo è completamente riscrivere indipendente e genera ancora più o meno SEO friendly URI
La speranza è di alcuna utilità per voi.
Probabilmente non è il caso qui, e certamente non è raccomandato, e probabilmente non è la risposta giusta ...
MA ...
Ho visto la gente usa 404 pagine per analizzare la richiesta e quindi includono giusta pagina con queste informazioni.
Vedere PATH_INFO in variabili CGI ambiente .