Warning: include_once(/www/wwwroot/huison.cn/head.php): failed to open stream: Permission denied in /www/wwwroot/huison.cn/show.php on line 48

Warning: include_once(): Failed opening 'head.php' for inclusion (include_path='.:/www/server/php/56/lib/php') in /www/wwwroot/huison.cn/show.php on line 48

Warning: include_once(/www/wwwroot/huison.cn/banner.php): failed to open stream: Permission denied in /www/wwwroot/huison.cn/show.php on line 53

Warning: include_once(): Failed opening 'banner.php' for inclusion (include_path='.:/www/server/php/56/lib/php') in /www/wwwroot/huison.cn/show.php on line 53

Apache配置文件中的MultiViews


问题:

在配置某个站点的.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文件,因为当前文件夹中确实有这个文件存在,系统自动找到了这个文件。

至此,问题解决!

其它相关文章:

Warning: include_once(/www/wwwroot/huison.cn/foot.php): failed to open stream: Permission denied in /www/wwwroot/huison.cn/show.php on line 126

Warning: include_once(): Failed opening 'foot.php' for inclusion (include_path='.:/www/server/php/56/lib/php') in /www/wwwroot/huison.cn/show.php on line 126