2010-11-01 44 views
27

Tengo problemas para mantener los parámetros de la URL funcionando después de una reescritura de htaccess url..htaccess RewriteRule para conservar los parámetros de GET URL

Mi reescritura .htaccess es el siguiente:

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

Lo que significa:

domain.com/index.php?lang=en&page=product se muestra como domain.com/en/product

Por alguna razón, cuando agrego un ?model=AB123&color=something al final de las URL de mi I am no puede recuperar esos parámetros en php usando $_GET['model'] y $_GET['color'] aunque estén presentes en la URL mostrada.

¿Por qué no se transmiten las variables?

Respuesta

61

Debe adjuntar la etiqueta [QSA] (cadena de consulta anexada). Trate

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

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

+4

Muchas gracias. Eso funciono. Es curioso lo simple que es la solución después de algunas de las cosas que probé ... – Enkay

+0

Parece que no funciona en la mía, incluso con la etiqueta QSA. Se muestra la página correcta, pero debido a que $ _GET parece inalcanzable, arroja muchos errores. Estoy usando 'RewriteRule^details/([^ /]) /? $ Detalles? Pin = $ 1 [QSA]' – Lee

+0

Gracias por responder. Funcionó. – Vinay

Cuestiones relacionadas