mod_rewrite URI与文件夹或文件同名

时间:2014-04-29 07:33:59

标签: apache .htaccess mod-rewrite

一个简单的.htaccess文件:

RewriteEngine On
RewriteBase / 
RewriteRule ^webshop$ /index.php?page=webshop [L]

...对我不起作用,因为在web根目录中有一个名为webshop.php的文件。重命名文件解决了问题,并且更改.htaccess文件中的正则表达式解决了问题,但仍然 - 它只是文件名的部分匹配......?我唯一能找到的就是使用

  

DirectorySlash off

我已经尝试过了,但没有任何区别。

在这里需要一些帮助,必须有一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:1)

您很可能已启用MultiViews个选项。在MultiViews之前运行的Apache's content negotiation module使用选项mod_rewrite,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php

将此行放在.htaccess:

的顶部以禁用它
Options -MultiViews