如何修复.htaccess文件中的重定向循环?

时间:2014-06-13 09:53:08

标签: php .htaccess

我有一个contact_us.php文件,我希望通过ReWrite规则查看使用SEO友好URL的内容。 我只是想要有人点击网址http://domainname.com/contact_us.php它应该继续http://domainname.com/contact-us

这就是我使用的:

Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^contact-us$ /contact_us.php
redirect 301 /contact_us.php http://www.domainname.com/contact-us

当我点击网址http://domainname.com/contact-us时,会显示webpage has a redirect loop

我在做错的地方。任何建议都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

您递归重定向页面只需将.htaccess更新为低于一,

重定向

Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
REDIRECT 301 /contact_us.php http://www.domainname.com/contact-us

重写

Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^contact-us$ /contact_us.php

答案 1 :(得分:1)

这应该有效:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+contact_us\.php[?/\s] [NC]
RewriteRule ^ /contact-us [R=302,L]

RewriteRule ^contact-us/?$ /contact_us.php [L,NC]

mod_rewrite规则与mod_aliasredirect指令)混合在一起并不是一个好主意。