Mod_Rewrite错误310 TOO_MANY_REDIRECTS

时间:2012-08-30 13:16:10

标签: .htaccess mod-rewrite

我想在.htaccess中使用此代码制作漂亮的URL(contact.php?id =要联系的东西),但是当我使用它时,我的浏览器显示错误310 - 重定向太多。

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^contact/(.*)$ contact.php?id=$1 [L]

RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^contact.php$ /contact/%1? [R,L]

有人可以帮帮我,有什么不对吗? 谢谢。

1 个答案:

答案 0 :(得分:3)

你的问题是你正在重定向联系人/ contact.php,然后将contact.php重定向到联系人(参见无限循环?)

要解决此问题,您可以在第一个规则中添加另一个无用的参数(另一个原因是您应该在最后一个规则中使用R = 301而不仅仅是R标志,这意味着重定向是永久性的而不是临时的,但是这没有引起任何问题):

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^contact/(.*)$ contact.php?id=$1&r=0 [L]

RewriteCond %{QUERY_STRING} ^id=([^\&]*)$
RewriteRule ^contact.php$ /contact/%1? [R=301,L]