.htaccess错误代码:ERR_TOO_MANY_REDIRECTS

时间:2015-02-21 22:35:26

标签: .htaccess

我正在使用此.htaccess添加"?timestamp"在我的网址末尾 例如:

example.com/pagename?201502201855    

一切正常,但如果我导航到页面和页面是

example.com/page/2/?201502211929

然后我收到错误此网页有重定向循环错误代码:ERR_TOO_MANY_REDIRECTS

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(?!wp-admin) %{REQUEST_URI}?%{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR} [L,R=302,NE]

RewriteCond %{TIME_YEAR}%{TIME_MON}##%{QUERY_STRING} ^([^#]+)##\1
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}##%{QUERY_STRING} !^([^#]+)##\1
RewriteRule ^(?!wp-admin) %{REQUEST_URI}?%{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR} [L,R=302,NE]

1 个答案:

答案 0 :(得分:0)

错误表明您正在导致重定向循环,这意味着您需要RewriteCond来防止重定向再次发生。

这是一个简单的方法,可以在您添加" showtime"时随时为您的网址添加时间戳。到查询字符串。这比当前代码更清晰,因为时间戳被分配给RewriteCond中的变量,然后在RewriteRule中重用:

RewriteCond %{QUERY_STRING} showtime [NC]
RewriteCond %{TIME} ^(.*)$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}?time=%1 [R,L]

在上面的例子中,重定向仅在“showtime'在查询字符串中存在,因此重定向不会重复。也许在您的脚本中可以使用类似的方法来确保重定向不会继续发生?

例如,此代码将始终添加时间戳,但通过检查" timestamp"来阻止重定向循环。在查询字符串中:

RewriteCond %{QUERY_STRING} !timestamp [NC]
RewriteCond %{TIME} ^(.*)$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}?timestamp=%1 [R,L]