2010-11-01 5 views
27

Ho problemi a mantenere i parametri dell'URL funzionanti dopo una riscrittura di url htaccess..htaccess RewriteRule per preservare i parametri URL GET

mio .htaccess riscrittura è il seguente:

RewriteEngine on 
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 

Il che significa:

domain.com/index.php?lang=en&page=product viene visualizzato come domain.com/en/product

Per qualche ragione, quando aggiungo un ?model=AB123&color=something alla fine dei miei URL I am non è in grado di recuperare quei parametri in php utilizzando $_GET['model'] e $_GET['color'] anche se sono presenti nell'URL visualizzato.

Perché le variabili non vengono trasmesse?

risposta

61

È necessario aggiungere il tag [QSA] (query string append). Prova

RewriteEngine on 
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA] 

Vedi http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

+4

Grazie mille. Ha funzionato. È divertente quanto sia semplice la soluzione dopo alcune delle cose che ho provato ... – Enkay

+0

Non sembra funzionare sul mio, anche con il tag QSA. Viene visualizzata la pagina corretta, ma poiché $ _GET sembra non ottenibile, genera molti errori. Sto usando 'RewriteRule^dettagli/([^ /]) /? $ Dettagli? Pin = $ 1 [QSA]' – Lee

+0

Grazie per la risposta. Ha funzionato. – Vinay