.htaccess 一致“请求超过了 10 个内部重定向的限制...”(包含代码)
Posted
技术标签:
【中文标题】.htaccess 一致“请求超过了 10 个内部重定向的限制...”(包含代码)【英文标题】:.htaccess Consistent "Request Exceeded The Limit Of 10 Internal Redirects..." (Code Included) 【发布时间】: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 错误..
【参考方案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+/
部分设为可选。
【讨论】:
以上是关于.htaccess 一致“请求超过了 10 个内部重定向的限制...”(包含代码)的主要内容,如果未能解决你的问题,请参考以下文章
浅谈.htaccess文件--避免滥用.htaccess文件
apache开启.htaccess及.htaccess的使用方法