我在我的网站example.com/foo.php
上有这个网址,我在htaccess中将其更改为example.com/foo
:
RewriteRule ^foo$ foo.php [NC,L]
它工作正常。但是我想从旧网址到新网址进行301重定向。所以我在我的htaccess中添加了这一行:
RewriteRule ^foo.php$ http://example.com/foo [L,NC,R=301]
我得到了无限循环的重定向......如何解决?
答案 0 :(得分:0)
您可以使用THE_REQUEST变量来避免循环错误:
RewriteCond %{THE_REQUEST} /foo\.php [NC]
RewriteRule ^foo\.php$ http://example.com/foo [L,R=301]
RewriteRule ^foo$ foo.php [NC,L]
或者,如果您使用的是apache 2.4,则可以使用END标志
RewriteRule ^foo\.php$ http://example.com/foo [L,R=301]
RewriteRule ^foo$ foo.php [NC,END]
答案 1 :(得分:0)
如果更改顺序,则不应循环工作。试试波纹管工作正常:
RewriteEngine on
RewriteRule ^foo.php$ http://example.com/foo [L,NC,R=301]
RewriteRule ^foo$ foo.php [NC,L]