2009-10-09 13 views
11

Ho il seguente URL:Regola di riscrittura Apache con parametri?

http://domain.com/index.php?m=feedback&cSubject=My Subject 

voglio avere una regola di riscrittura in modo che il seguente:

http://domain.com/feedback?Subject=My Subject 

mappe all'URL precedente. Ecco la mia regola al momento:

RewriteRule ^feedback?Subject=(.*)$ index.php?m=feedback&cSubject=$1 

Non sembra funzionare! Qualche idea?

risposta

14

Le stringhe di query non vengono analizzate da Apache Mod_Rewrite, ma esiste una soluzione alternativa. Prova questo

RewriteRule ^feedback/?$ index.php?m=feedback&c%{QUERY_STRING} [NC,L] 
+1

Ha funzionato, grazie! – James

+1

Questo è quello che mi mancava per le mie query di ricerca dinamiche. Grazie, Clops! –

+0

come ti libereresti del necessario '?' Alla fine? non funziona se lo rimuovo – user151496

5

È possibile utilizzare dichiarazione RewriteCond per fare esattamente quello che vuoi:

RewriteEngine On 

RewriteCond %{QUERY_STRING} Subject=(.*) 
RewriteRule ^feedback$ index.php?m=feedback&cSubject=%1 [L] 
0

Sembra che ci sia un = manca Clops risposta da dare ..

RewriteRule ^feedback/?$ index.php?m=feedback&c=%{QUERY_STRING} [NC,L] 

. almeno ne ho bisogno di uno per farlo funzionare.

Problemi correlati