【问题标题】:Apache log: Request exceeded the limit of 10 internal redirectsApache 日志:请求超出了 10 个内部重定向的限制
【发布时间】:2015-02-10 11:26:28
【问题描述】:

我有一个网页在服务器上可以正常工作,但在我的新服务器上却不能正常工作。 Apache 日志显示“由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,请使用 'LimitInternalRecursion' 来增加限制。使用 'LogLevel debug' 来获取回溯。”。 我无法修复它。

<IfModule rewrite_module>
RewriteEngine on
RewriteRule ^(.*)\.css$ $1.css [L]
RewriteRule ^(.*)\.png$ $1.png [L]
RewriteRule ^(.*)\.jpg$ $1.jpg [L]
RewriteRule ^(.*)\.gif$ $1.gif [L]
RewriteRule ^(.*)\.js$ $1.js [L]
RewriteRule ^(.*)\.swf$ $1.swf [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?idioma=$1&codigo=$2&subcodigo=$4&subsubcodigo=$6 [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?idioma=$1&codigo=$2&subcodigo=$4&subsubcodigo=$6 [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?idioma=$1&codigo=$2&subcodigo=$4 [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ index.php?idioma=$1&codigo=$2&subcodigo=$4 [L]
RewriteRule ^(.*)/(.*)/(.*)$ index.php?idioma=$1&codigo=$2 [L]
RewriteRule ^(.*)/(.*)$ index.php?idioma=$1&codigo=$2 [L]
RewriteRule ^(.*)/$ index.php?idioma=$1 [L]
RewriteRule ^/$ index.php [L]
</IfModule>

【问题讨论】:

    标签: .htaccess rewrite webpage


    【解决方案1】:

    这些规则会造成无限循环

    RewriteRule ^(.*)\.css$ $1.css [L]
    RewriteRule ^(.*)\.png$ $1.png [L]
    RewriteRule ^(.*)\.jpg$ $1.jpg [L]
    RewriteRule ^(.*)\.gif$ $1.gif [L]
    RewriteRule ^(.*)\.js$ $1.js [L]
    RewriteRule ^(.*)\.swf$ $1.swf [L]
    

    顺便说一句,它们是无用的(所以你可以删除它们)。

    您的代码中还有许多设计问题(您可以组合多个规则,可以使用更严格的正则表达式,可以避免捕获不需要的数据等)。

    最后,你的 htaccess 应该是这样的

    <IfModule rewrite_module>
      RewriteEngine on
    
      RewriteCond %{REQUEST_FILENAME} -d [OR]
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^ - [L]
    
      RewriteRule ^([^/]+)/([^/]+)/[^/]+/([^/]+)/[^/]+/([^/]+)/?[^/]*$ /index.php?idioma=$1&codigo=$2&subcodigo=$3&subsubcodigo=$4 [L]
      RewriteRule ^([^/]+)/([^/]+)/[^/]+/([^/]+)/?[^/]*$ /index.php?idioma=$1&codigo=$2&subcodigo=$3 [L]
      RewriteRule ^([^/]+)/([^/]+)/?[^/]*$ /index.php?idioma=$1&codigo=$2 [L]
      RewriteRule ^([^/]+)$ /index.php?idioma=$1 [L]
      RewriteRule ^$ /index.php [L]
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 2019-03-08
      • 2018-03-18
      • 2020-08-12
      • 2013-06-07
      • 2014-09-25
      • 2014-08-05
      相关资源
      最近更新 更多