Apache配置文件中的MultiViews

发布日期:2017-12-08 浏览量:2665 次

问题:

在配置某个站点的.htaccess文件中的规则,如下:

RewriteRule ^member/([a-zA-Z0-9_]+)$                   /member\.php?module=$1   [QSA,L]

浏览器中访问一直获取不到module的值,百思不得其解。

通过打印$_SERVER变量,发现$_SERVER['REQUEST_URI']的值是/member.php/test,这就比较奇怪了,member路径成了文件。

解决:

既然$_SERVER有问题,就在Apache配置文件里面查找原因。

通过对比服务器正常配置文件,发现

<Directory  "e:/www/demo/">
        Options +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
</Directory>

多了+MultiViews(多重视图),去掉即可。

比如:客户端输入“http://localhost/demo/test”这将会显示此目录下所有 test.* 文件,并不是出错信息。

这也就是为什么我遇到的member路径成了member.php文件,因为当前文件夹中确实有这个文件存在,系统自动找到了这个文件。

至此,问题解决!