由于可能的配置错误,请求超出了 10 次内部重定向的限制,请使用“LimitInternalRecursion”来增加限制

由于可能的配置错误,请求超出了 10 次内部重定向的限制,请使用“LimitInternalRecursion”来增加限制

这是我的 wordpress 博客网站的 .htaccess,使用它将 www 重定向到非 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} ^[A-Z]{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 内部错误。

在日志中提到:由于可能的配置错误,请求超出了 10 次内部重定向的限制。如有必要,请使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。

任何建议,我的 .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

答案1

通过虚拟主机配置将 www 重定向到非 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>

相关内容