2013-05-07 208 views
0

我試圖發送一個看起來像這樣的查詢:需要幫助重寫URL與htaccess的

example.org/search?q=search+query 

search.pl?q=search+query 

和所有其他請求到index.php,這是怎麼了我htaccess看起來像(不工作)

RewriteEngine on 
RewriteRule ^search\?q\=(.*)$ /cgi-bin/search.pl?q=$1 [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

這將我發送到索引出於某種原因。

回答

1

查詢字符串不是什麼在重寫規則進行評估的一部分,所以你需要從比賽條件中刪除,在重寫規則是這樣的:

RewriteRule ^/?search$ /cgi-bin/search.pl [L,QSA] 

注意你不需要使用反向引用($1),因爲QSA標誌將按原樣將現有查詢字符串追加到URI。

+0

它的工作表示感謝! – user2348668 2013-05-08 00:08:10