2012-02-09 9 views
15

Ho bisogno di passare/come variabile come parte di un URL.% 2F nelle interruzioni di URL e non fa riferimento al file .php richiesto

La mia struttura simile a questa: www.domain.com/listings/page-1/city-Burnaby+South/type-Townhome/bedroom-2/bathroom-2

In questo caso, in ultima analisi, si riduce a listings.php e tutto il resto oltre diventa parametri che il mio script PHP analizza usando la variabile $ _SERVER ['REQUEST_URI'] var.

Tuttavia quando una delle variabili hte diventa "Appartamento/condominio" e/diventa% 2F tramite urlencode() in PHP quando viene generato l'URL, l'intera cosa si strozza e viene visualizzato un errore "Non trovato".

Come posso passare/senza interrompere l'URL? Cosa mi manca? Ho pensato che l'intero argomento di questi caratteri urlencode() (% 2F,% 20 ecc.) Fosse lì per sfuggire a questi problemi.

risposta

30

URL con % 2f/ o % 5c\ cambio una da Apache per motivi di sicurezza.

È possibile modificare la configurazione di Apache per abilitare AllowEncodedSlashes On o NoDecode. Tieni presente che questo potrebbe introdurre problemi di sicurezza non previsti, che questa "funzione" è stata progettata per mitigare.

Apache docs: http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

Risolto:

Questo mi ricevuti troppo - grazie per la domanda

+0

Questo spiega. Grazie mille. – jeffkee

-3

È possibile ugualmente fare solo urldecode();

+0

L'URL viene passato e decodificato tramite urldecode (). Il mio problema è che non viene nemmeno visualizzato nella pagina PHP - restituisce un 404 non appena c'è una% 2F inclusa nella richiesta da qualche parte. – jeffkee

Problemi correlati