Apache配置文件中的MultiViews

发布日期:2017-12-08 浏览量:917 次
  • 问题:

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

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

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

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

    解决:

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

    通过对比德赢体育vwin器正常配置文件,发现

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

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

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

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

    至此,问题解决!