.htaccess——重定向过多

.htaccess——重定向过多

我从以下两个 .htaccess 文件收到“重定向过多”错误。

域名 1 上的 .htaccess

Redirect 301 / http://www.domain2.com/

域名 2 上的 .htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /forum/ [L,R]

RedirectMatch permanent ^/$ /forum/

# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badsite2\.com [NC]
RewriteRule .* - [F] 

有人知道过多重定向错误的原因吗?

答案1

您的网站在 domain2 中是否存在目录“/forum/”?如果不存在,则遵循RewriteCond(重写条件)&RewriteRule将始终导致重定向到/forum/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /forum/ [L,R]

这会导致无限重定向循环并引发too many redirects错误。

根据您的补充评论,您说以下三行代码导致了重定向循环:

RewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badsite2\.com [NC]
RewriteRule .* - [F] 

“badsite1.com”或“badsite2.com”是否也是您域名的一部分?例如,如果文字“badsite1.com”是“fred.com”,而您的域名是“myfred.com”,那么此条件将符合您网站的请求。

答案2

事实证明代码没有问题。可能是加载了不正确的代码的缓存副本并导致了错误。

相关内容