由于可能的configuration错误,请求超过了10个内部redirect的限制,使用'LimitInternalRecursion'来增加限制

这里是我的.htaccess为WordPress的博客网站,使用它来redirectwww到非www

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://example.com%{REQUEST_URI} [R=301,L] RewriteBase /blog/ RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /([^/]+/)*index\.(html|php)\ HTTP/ RewriteRule ^(([^/]+/)*)index\.(html|php)$ http://example.com/blog/$1 [R=301,L] RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] 

但是当我尝试打开www.example.com/blog/时,会出现500个内部错误。

在日志中提到:由于可能的configuration错误,请求超过了10个内部redirect的限制。 如果需要,使用“LimitInternalRecursion”来增加限制。 使用“LogLeveldebugging”来获得回溯。

任何build议,我的.htaccess有什么问题

错误日志:

  [Tue Sep 13 08:49:52 2016] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. [Tue Sep 13 08:49:52 2016] [debug] core.c(3072): [client 127.0.0.1] r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /blog [Tue Sep 13 08:49:52 2016] [debug] net/instaweb/apache/mod_instaweb.cc(384): [client 127.0.0.1] ModPagespeed OutputFilter called for request /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:52 2016] [debug] net/instaweb/apache/mod_instaweb.cc(405): [client 127.0.0.1] Request not rewritten because: request->status != 200 (was 500) [Tue Sep 13 08:49:52 2016] [debug] mod_deflate.c(687): [client 127.0.0.1] Zlib: Compressed 625 to 385 : URL /mnt/var/www/html/example/web/index.php [Tue Sep 13 08:49:53 2016] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3072): [client 127.0.0.1] r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] core.c(3078): [client 127.0.0.1] redirected from r->uri = /favicon.ico, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] net/instaweb/apache/mod_instaweb.cc(384): [client 127.0.0.1] ModPagespeed OutputFilter called for request /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] net/instaweb/apache/mod_instaweb.cc(405): [client 127.0.0.1] Request not rewritten because: request->status != 200 (was 500), referer: http://www.example.com/blog [Tue Sep 13 08:49:53 2016] [debug] mod_deflate.c(687): [client 127.0.0.1] Zlib: Compressed 625 to 385 : URL /mnt/var/www/html/example/web/index.php, referer: http://www.example.com/blog 

通过虚拟主机configuration将wwwredirect到非www,解决了这个问题。

 <virtualhost> ServerAdmin [email protected] ServerName yoursite.com ServerAlias www.yoursite.com DocumentRoot /var/www/yoursite.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # You must your the <directory> container. For more information see filesystem containers # http://httpd.apache.org/docs/current/sections.html#virtualhost <directory /> # You more than likely can the remove the <ifModule> container as your Rewrite # Engine is probably turned on in your main server config file # (check here: /etc/apache2/apache2.conf) but it is here for structure. <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On </IfModule> # Redirects WWW URL's to Non-WWW URL's <IfModule mod_rewrite.c> RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] </IfModule> # If there is a specific directory within your Virtual Host that you wanted to # modify, you would have to nest another <directory> container within the root directory # of virtual host previously declared with reference to the directory. <directory /some-directory> # your rules would go here. </directory> </directory>