2012-09-18 59 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

相关问题