【问题标题】:Request exceeded the limit of 10 internal redirects due to probable configuration由于可能的配置,请求超出了 10 个内部重定向的限制
【发布时间】:2016-02-24 16:48:51
【问题描述】:

我的 .htaccess 规则如下所示

RewriteEngine On
RewriteBase /
RewriteRule ^main index.php [L]
RewriteRule ^login login.php [L]
RewriteRule ^logout logout.php [L]
RewriteRule ^tags tags.php [L]
RewriteRule ^audios/([^/]*)$ audios.php?type=$1 [L]
RewriteRule ^audios/([^/]*)/page([^/]*)$ audios.php?type=$1&page=$2 [L]
RewriteRule ^audios/([^/]*)/([^/]*)$ audios.php?type=$1&timesort=$2 [L]
RewriteRule ^audios/([^/]*)/([^/]*)/page([^/]*)$ audios.php?type=$1&timesort=$2&page=$3 [L]

每次访问这些页面时都会收到 500 个内部错误。唯一的页面工作是 index.php

有什么想法吗?

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    用末端锚点试试这些规则:

    Options -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^main/?$ index.php [L]
    RewriteRule ^login/?$ login.php [L]
    RewriteRule ^logout/?$ logout.php [L]
    RewriteRule ^tags/?$ tags.php [L]
    
    RewriteRule ^audios/([^/]+)/?$ audios.php?type=$1 [L,QSA]
    RewriteRule ^audios/([^/]+)/page([^/]*)$ audios.php?type=$1&page=$2 [L,QSA]
    RewriteRule ^audios/([^/]+)/([^/]*)$ audios.php?type=$1&timesort=$2 [L,QSA]
    RewriteRule ^audios/([^/]+)/([^/]+)/page([^/]*)$ audios.php?type=$1&timesort=$2&page=$3 [L,QSA]
    

    【讨论】:

    • 在添加选项 -MultiViews 和结束锚点后,现在它变成了 404
    • 更新:如果访问页面:domain.com/login(带有结尾锚)=它可以工作,但 domain.com/login 变成 404
    • @David - 它们是相同的......哪一个有效,哪一个抛出 404?
    • 顺便说一句,您仍然有错误的 RewriteRule ^audios audios.php [L] 规则。那应该是:RewriteRule ^audios/?$ audios.php [L](注意在所有类似的规则中添加/?$
    • 最后一条评论修正了这一点.. 我没有注意到它下面还有另一个坏规则.. 非常感谢.. 我花了 2-3 个小时在谷歌周围,你拯救了我的一天。
    猜你喜欢
    • 2012-05-03
    • 2010-12-09
    • 1970-01-01
    • 2014-01-26
    • 2020-05-05
    相关资源
    最近更新 更多