在我的 Apache error.log 中,我收到了数千个这样的错误:
2013-01-02 20:46:44.582 [INFO] [50.18.21.225:48281-1#APVH_example.com] [REWRITE]
detect external loop redirection with target URL: /index.html, skip.
2013-01-02 20:46:44.582 [INFO] [50.18.21.225:48276-1#APVH_example.com] [REWRITE]
detect external loop redirection with target URL: /index.html, skip.
我有这样一个 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_USER_AGENT} "Somebot|Otherbot" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Anotherbot" [NC]
RewriteCond %{REQUEST_URI} !(\/mypages|\/otherpages) [NC]
RewriteRule ^(.*)$ index.html? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
如果我注释掉这个块,我不会收到任何错误。但我的网站需要它。
RewriteCond %{HTTP_USER_AGENT} "Somebot|Otherbot" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Anotherbot" [NC]
RewriteCond %{REQUEST_URI} !(\/mypages|\/otherpages) [NC]
RewriteRule ^(.*)$ index.html? [R=301,L]