Htaccess重写错误:正斜杠

时间:2014-03-22 20:05:29

标签: .htaccess mod-rewrite

我的.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错误。我需要告诉服务器:"嘿,这不是真正的目录,只是网址格式化的方式)

1 个答案:

答案 0 :(得分:0)

问题来自我的htaccess文件中的其他规则,如下所示:

# No extension act like .php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php