apache - 重写规则案例 "Internal server error"(里面的 error.log)

标签 apache .htaccess mod-rewrite url-rewriting

我已经将旧的 eZ-Publish 站点升级到最新的 PHP5 兼容 4.6 版本(以前是 PHP4)。该站点在我的本地网络服务器上运行,但是当我尝试将其连接到服务器时,它失败并在 Apache 的 error.log 中显示以下消息:

[Mon Apr 16 14:33:22 2012] [error] [client 46.249.225.2] Request exceeded the limit of 20 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

我已将其缩小为重写规则中的问题,这很奇怪,因为我使用与其他 4.6 安装相同的重写规则。这是 Apache 主机文件中的重写规则:

RewriteEngine On
Rewriterule ^/var/storage/.* - [L]
Rewriterule ^/var/[^/]+/storage/.* - [L]
#RewriteRule ^/var/cache/texttoimage/.* - [L]
#RewriteRule ^/var/[^/]+/cache/texttoimage/.* - [L]
RewriteRule ^/var/([^/]+/)?cache/(texttoimage|public)/.* - [L]
Rewriterule ^/design/[^/]+/(stylesheets|images|javascript)/.* - [L]
Rewriterule ^/share/icons/.* - [L]
RewriteRule ^/extension/[^/]+/design/[^/]+/(stylesheets|images|javascripts?|lib|flash)/.* - [L]
Rewriterule ^/packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.* - [L]
RewriteRule ^/packages/styles/.+/thumbnail/.* - [L]
RewriteRule ^/favicon.ico - [L]
RewriteRule ^/robots.txt - [L]
RewriteRule ^/extension/sjsd/(FCKeditor|fcksjsd)/.* - [L]
RewriteRule ^/var/([^/]+/)?cache/public/.* - [L]
RewriteRule ^/extension/[^/]+/design/[^/]+/calendar/.* - [L]
RewriteRule ^/extension/[^/]+/design/[^/]+/calendar/ipopeng.htm - [L]
RewriteRule ^/extension/[^/]+/design/[^/]+/fckskins/.* - [L]
# Uncomment the following lines when using popup style debug.
# RewriteRule ^/var/cache/debug.html.* - [L]
# RewriteRule ^/var/[^/]+/cache/debug.html.* - [L]
RewriteRule .* /index.php

有没有人发现任何问题?

最佳答案

假设您的 .htaccess 文件位于根目录中,您的最后一条规则创建了一个内部重定向,它以 /index.php 作为需要重写的 URL 重新启动重写过程。最后一条规则将 /index.php 重写为 /index.php 并继续循环。尝试在您的 .htaccess 文件 .* 规则之前添加此行:

RewriteRule ^/index\.php$ - [L]

关于apache - 重写规则案例 "Internal server error"(里面的 error.log),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186403/

相关文章:

python - django 中带有 mod_wsgi 的静态文件

php - 使用 .htaccess/PHP 获取错误描述

python - Apache/mod_wsgi/django/arch linux 自 64 位升级以来陷入困境,尽管能够导入所有库

svn - 我怎样才能说服 mod_rewrite 远离我的 Subversion 存储库?

java - 如果用户未通过身份验证,Apache 2.x 和 mod_proxy 会产生重定向循环

regex - 使用 htaccess 从 url 中删除 .php

.htaccess - 如何伪造网址?

AngularJS 导航到 Apache 中的路线时给出 404

.htaccess - 如何在 Heroku Cedar 堆栈上使用 .htaccess 重定向到 HTTPS

apache - .htaccess 未从 DocumentRoot 目录中正确读取