2013-10-25 63 views
1

我需要爲我改變搜索目錄從/global/search//search/index.php文件顯示爲htaccess的查詢字符串重定向

重定向

localhost/site/global/search/index.php?keyword=hi&search=all 

從一個目錄到其他保存查詢字符串的.htaccess重定向爲了

localhost/site/search/?keyword=hi&search=all 

目錄結構

wamp/www/site/global/search/index.php //for /global/ directory 
wamp/www/site/search/index.php   //for /search/ directory 

我想這樣

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^global/search(/?|/index.php?)$ /site/search/?$1 [QSA,R=301,L] 

這是工作,除了我在查詢字符串

我重定向後得到這個URL獲得index.php

http://localhost/site/search/?/index.php&keyword=hi&search=all 

我希望這個網址能像

http://localhost/site/search/?keyword=hi&search=all 

請明白爲什麼index.php文件被重定向的URL來作爲查詢字符串和建議的方式來獲得乾淨的查詢字符串沒有的index.php

回答

1

你可以試試這個規則:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^global/search(/?|/index\.php)$ /site/search/ [NC,R=301,L] 
+0

偉大的工作。謝謝 –

+0

我得到與'RewriteRule^global/search(/?|/index \ .php)/ site/search/[QSA,R = 301,L]同樣的結果''我需要保留'$'和'NC在規則中對'QSA'進行了檢查。 –

+0

如果您不修改查詢字符串,則不需要QSA。 NC是無視情況。最好保留'$'。 – anubhava

相關問題