服务器上忽略Mod_Rewrite规则

时间:2014-02-26 08:30:10

标签: php apache .htaccess mod-rewrite

我在.htaccess - 文件中获得了以下RewriteRule:

RewriteRule ^([a-z]+)/(.*)$ distributor.php?file=$1&params=$2 [L]

如果我通过Xampp请求我的本地系统上的“www.domain.local/index/id/123”,这可以很好地工作。它请求distributor.php(它做一个简单的var_dump($_GET);)并产生预期的输出:

array
  'file' => string 'index' (length=5)
  'params' => string 'id/123' (length=6)

将这些文件上传到服务器时,该规则不适用。浏览器只输出DirectoryIndex文件。

经过几个小时的尝试修复后我感到困惑,并感谢任何帮助

由于

更新

如果我用破折号替换斜线并使用以下规则:

RewriteRule ^([a-z]+)-(.*)$ distributor.php?file=$1&params=$2 [L]

整个过程在我的本地系统和服务器上都有效。

我是否需要更改以在服务器上使用斜杠?

1 个答案:

答案 0 :(得分:0)

找到您的apache配置文件,然后添加以下行:

<Directory /path/to/your/web/application>
    Options Indexes FollowSymlinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

然后如果以下行不存在,请写下:

AccessFileName .htaccess