2012-09-18 57 views
0

目前我想在我的網站/子/文件夾中的.htaccess文件使用兩個重寫規則。一種是重定向,用於刪除網址末尾的index.php,index.html等。 /sub/index.php - >/sub /:的.htaccess重定向指數。*和重寫URL輸入一個查詢字符串

RewriteCond %{REQUEST_URI} ^(.*)/index\.[^\.]+$ 
RewriteRule index.* %1/ [r=301,L] 

另一個是重寫php的url以獲取查詢字符串,例如/子/測試 - 測試 - > /sub/index.php?field=testing-testing:

RewriteRule ^(.*)$ index.php?command_name=$1 [L,QSA] 

這些似乎沒有問題的工作對自己,但我只是無法弄清楚如何讓他們一起工作。

我可以看到它可能與第二條規則是想錯了,因爲第一個是符合「指數(......)」,所以我試過的這些不同的變化,但我一直有兩種無盡的重定向循環結束了或被重定向回網站的根目錄。

回答

0

您去除index.php當需要匹配與實際要求,而不是URI。 2個規則不能一起工作的原因是因爲mod_rewrite一直循環遍歷所有的規則,直到URI停止變化。第2規則重寫URI來index.php,第一個規則相匹配,並刪除它,然後第二個規則重寫回來,等

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.(php|html?) 
RewriteRule^/%1 [R=301,L] 

那麼你應該能夠離開第二個規則不變。

+0

非常感謝,它做到了。 – 2sh

相關問題