mod_rewrite错误地重定向到.html

时间:2014-05-04 03:18:49

标签: macos apache .htaccess mod-rewrite apache2

我刚刚在OSX 10.9上设置了一个AMP服务器,并且遇到了一个bizzare问题,这个问题在我的实时托管服务器或旧的WAMP服务器上都没有。

我想将任何不直接映射到服务器上的文件的URL重定向到index.php。我使用以下.htaccess代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# prevent loop
RewriteCond %{REQUEST_URI} !index\.php
RewriteRule ^(.*)$ /index.php?/$1 [L]

当我尝试http://example.com/example时没有问题,但是当我引入另一个斜杠时,例如,http://example.com/example/

我收到了404错误The requested URL /example.html/ was not found on this server.

服务器版本:Apache / 2.2.26(Unix)

1 个答案:

答案 0 :(得分:0)

看起来您的问题与此处启用MultiViews有关。在.htaccess:

上使用此行将其关闭
Options -MultiViews
  • MultiViews使用选项Apache's content negotiation module,它在mod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php