¿Cómo pasar parámetros GET a URL reescrita?


13

Tengo una .htaccessregla de reescritura como esta:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1

Lo que esto hace es que si alguien visita http://example.com/search/testel URI que realmente se procesa es http://www.example.com/search.php?q=test.

Ahora, si trato de pasar un parámetro GET aleatorio adicional a mi URL reescrita, el parámetro se ignora. Entonces, si trato de hacer una visita aquí:

http://www.example.com/search/whatever?extra=true

El parámetro extrase ignora. Parece que no se pasa en absoluto.

¿Se puede solucionar este problema? ¿Si es así, cómo?

Respuestas:


14

Está buscando la bandera de Qppend Suery Atring, por ejemplo

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1 [QSA]

Consulte la mod_rewritedocumentación para obtener una descripción completa de los indicadores RewriteRule.


¡Oh bien! Sabía que había algo así. Soy un .htaccessnovato
— Jake Wilson, el

¿Hay alguna manera de agregar QSA a todas las reglas
— Hakkikonu

Hola @danlefree. Sé que es una pregunta antigua, pero usando Wamp, cuando hago esto, todas mis hojas de estilo, scripts, etc. pierden referencia. ¿Cómo puedo resolver eso?
— DannyGM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.