我的.htaccess文件中有一个RewriteRule导致我出现问题。
重写规则格式
RewriteRule模式目标
当模式中存在正斜杠(/)时,会发生问题。看起来服务器将其解释为目录,因此目标是从该特定目录(实际上并不存在)运行的。这会导致服务器上出现500错误。
我的.htaccess代码如下:
RewriteRule ^store/women-shoes$ controller?controller=page&action=store&category=women-shoes
这会导致500错误。这是我在apache错误日志中得到的确切错误。
[2014年3月22日星期六15:12:58] [错误] [客户端127.0.0.1]超出请求 由于可能的配置,限制了10次内部重定向 错误。使用' LimitInternalRecursion'如果增加限制 必要。使用' LogLevel debug'获得回溯。
但是,如果我删除模式中的正斜杠,一切正常,所以它显示错误来自正斜杠。
RewriteRule ^store-women-shoes$ controller?controller=page&action=store&category=women-shoes
控制器文件与.htaccess文件位于同一个directoy中,它必须保持这种状态。如何更新我的代码以保持相同的格式(在模式中使用正斜杠)但不触发此500错误。我需要告诉服务器:"嘿,这不是真正的目录,只是网址格式化的方式)
答案 0 :(得分:0)
问题来自我的htaccess文件中的其他规则,如下所示:
# No extension act like .php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php