【问题标题】:.htaccess Consistent "Request Exceeded The Limit Of 10 Internal Redirects..." (Code Included).htaccess 一致“请求超过了 10 个内部重定向的限制...”(包含代码)
【发布时间】:2015-11-18 12:32:17
【问题描述】:

我遇到了一些非常奇怪的问题。

我在 AWS Elastic Beanstalk 上运行我的应用程序,我的 .htaccess 文件位于我的应用程序的可访问 Web 级别的根目录中。

我经常在我的错误日志中看到问题,似乎每次请求我都会收到“请求超过 10 个内部重定向的限制”消息。虽然页面正在加载并且工作正常,但这些错误正在抛出并且我在服务器上的负载远高于应有的负载,这向我表明某处存在问题。

我对 .htaccess 文件不是很熟悉,因为我已经有 2 年左右没有编写它们了,而这个是针对我构建的旧 MVC 框架的(尽管到目前为止从未遇到过问题)

任何帮助将不胜感激,我不知道在哪里看这一点。

.htaccess 文件:

# -*- mode: apache -*-

AddDefaultCharset utf-8

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript image/jpg image/jpeg image/png image/gif video/mp4
</ifmodule>

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^[^\.]+\.[^\.]+$
RewriteRule ^.*$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

RewriteRule ^(\d+\/)?assets/(.*)$ assets/$2 [L]
RewriteRule .*$ app/index.php [L]

【问题讨论】:

  • 启用重写日志。当(\d+\/)? 是可选的时,您还将assets/* 重定向到assets/*
  • 啊,对。会这样做并检查它,如果我无法弄清楚,我会发布转储。
  • 仍然遇到问题,启用日志似乎抛出 500 错误..

标签: php apache .htaccess amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

你的规则是这样的:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^.*$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^\d+/(assets/.*)$ $1 [L,NC]

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^ app/index.php [L]

在跳过文件/目录规则之前保留assets 规则,并且不要将\d+/ 部分设为可选。

【讨论】:

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