.htaccess将index.php重定向到其他RewriteRule,导致循环,即使使用[L]标志

时间:2012-05-20 12:40:17

标签: .htaccess url-rewriting

所以我有这个.htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^home$ /index.php [L]
RewriteRule ^edit$ /edit.php [L]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /new.php

它会将任何未知网址重定向到/new.php

仅将保留的/home/edit重定向到相应的页面

但我还想重定向转到根//index.php|html的任何人转到/home 所以我尝试了这个:

RewriteRule ^index\.(php|html?)$ /home [R=301,L]

但它会产生一个循环,这是可以理解的。

它还会导致环回自身,从而打破我的/home重定向。 如何让//index.php重定向到/index.php,但仍然在其后添加/home

我也尝试删除每个RewriteCond行,但它没有任何好处..

1 个答案:

答案 0 :(得分:2)

也许你可以将index.php重命名为home.php,这似乎是避免循环的最简单方法。