Come passare i parametri GET all'URL riscritto?


13

Ho una .htaccessregola di riscrittura come questa:

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

Ciò che fa è, se qualcuno visita http://example.com/search/testl'URI che è realmente elaborato è http://www.example.com/search.php?q=test.

Ora, se provo a passare un ulteriore parametro GET casuale al mio URL riscritto, il parametro viene ignorato. Quindi, se provo a visitare qui:

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

Il parametro extraviene ignorato. Non sembra essere passato affatto.

Questo problema può essere risolto? Se é cosi, come?

Risposte:


14

Stai cercando Ql'uery STring Abandiera ppend - ad esempio,

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

Consultare la mod_rewritedocumentazione per una descrizione completa dei flag RewriteRule.


Ah, carino! Sapevo che c'era qualcosa del genere. Sono un .htaccessnoob.
Jake Wilson,

C'è un modo per aggiungere il QSA a tutte le regole
hakkikonu,

Ciao @danlefree So che è una vecchia domanda, ma usando Wamp, quando lo faccio, tutti i miei fogli di stile, script ecc. Perdono riferimento. come posso risolverlo?
DannyGM,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.