【问题标题】:.htacces fails due to "Request exceeded the limit of 10 internal redirects ...".htaccess 因“请求超出 10 个内部重定向的限制......”而失败
【发布时间】:2011-02-27 14:37:25
【问题描述】:

我有以下 .htacces:

RewriteRule ^uploads/(.*)$ uploads/%{HTTP_HOST}/$1 [L]

它失败了: 由于可能的配置错误,请求超出了 10 个内部重定向的限制

我猜这是因为uploads/(.*)$ 也匹配uploads/%{HTTP_HOST}/$1,但我不知道如何解决这个问题。有什么想法吗?

【问题讨论】:

    标签: apache .htaccess rewrite


    【解决方案1】:

    试试这个

    RewriteCond %{REQUEST_URI} !^/uploads/.*?/.*$
    RewriteRule ^uploads/(.*)$ uploads/%{HTTP_HOST}/$1 [L]
    

    【讨论】:

    • 做了一些改变。你能再试一次吗?
    • 发布整个 .htaccess 到问题?。还启用重写日志以查看发生了什么。 RewriteLog "/path/to/logs/dir/rewrite.log" RewriteLogLevel 9 .
    • RewriteEngine On RewriteCond %{REQUEST_URI} !^/uploads/%{HTTP_HOST}/.* RewriteRule ^uploads/(.*)$ uploads/%{HTTP_HOST}/$1 [L]
    • 不知道如何换行 :( 日志表明它将uploads/test.jpg重写为uploads/my-domain.com/test.jpg,然后再写入uploads/my-domain。 com/my-domain.com/jpg 等...
    • 我又做了一个改动。看起来 RewriteCond 的 RHS 中不允许使用变量。请尝试让我知道。
    【解决方案2】:

    只有当替换有意义时,您才可以重写请求,即新 URL 引用现有文件:

    RewriteCond %{DOCUMENT_ROOT}/uploads/%{HTTP_HOST}/$1 -f
    RewriteRule ^uploads/(.+)$ uploads/%{HTTP_HOST}/$1 [L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-07
      • 2013-10-04
      • 2017-06-01
      • 2019-03-08
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多