Como passar parâmetros GET para URL reescrito?


13

Eu tenho uma .htaccessregra de reescrita como esta:

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

O que isso faz é, se alguém visitar http://example.com/search/testo URI realmente processado http://www.example.com/search.php?q=test.

Agora, se eu tentar passar um parâmetro GET aleatório extra para o meu URL reescrito, o parâmetro será ignorado. Então, se eu tentar fazer uma visita aqui:

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

O parâmetro extraé ignorado. Parece que não passou nada.

Esse problema pode ser corrigido? Se sim, como?

Respostas:


14

Você está procurando o Query String Abandeira ppend - por exemplo,

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

Consulte a mod_rewritedocumentação para obter uma descrição completa dos sinalizadores RewriteRule.


Ah legal! Eu sabia que havia algo assim. Eu sou um .htaccessnoob.
Jake Wilson

Existe uma maneira de adicionar QSA a todas as regras
hakkikonu

Oi @danlefree Sei que é uma pergunta antiga, mas usando o Wamp, quando faço isso, todas as minhas folhas de estilo, scripts etc. perdem referência. como posso resolver isso?
DannyGM
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.