当存在同名文件夹时,网页不显示

时间:2014-04-03 04:25:22

标签: php .htaccess wamp

我正在使用WampServer构建一个本地开发的网站,我目前的结构如下:

/css/
/js/
/pictures/
index.php
blog.php
games.php
.htaccess

一切正常,直到我创建了一个名为" / blog"的文件夹。这立即打破了我的blog.php页面。现在我已经删除了文件夹,重新启动了WampServer并重新启动了我的整台计算机,但错误仍然存​​在。出于某种原因,当我访问mysite / blog时,它会重定向到mysite / blog /并返回内部服务器错误。游戏页面没有这样的问题。如果我将blog.php重命名为myblog.php,问题就解决了,所以它只与文件名相关。

那么删除文件还不够吗?我需要以某种方式刷新WampServer吗?

如果重要,这是我的.htaccess文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

由于

3 个答案:

答案 0 :(得分:2)

问题在于htaccess文件和您选择的命名约定。

这一行特别是

RewriteCond %{REQUEST_FILENAME} !-d

如果文件不是目录,请使用重写。在/ blog的情况下,条件不满足并且htaccess没有拉blog.php,因为/ blog IS实际上是一个目录。删除文件夹应该足以解决它,但说实话,这是在寻找麻烦。为什么不去blog.php?

答案 1 :(得分:1)

如果index.php文件存在,mysite / blog会查看博客文件夹。

你仍然可以同时拥有相同名称的文件和文件夹(给定你当前的.htaccess),你只需要访问blog.php,转到mysite / blog.php

答案 2 :(得分:1)

试一试。你应该改变多视图,这样它就不会尝试模式匹配并做一些奇怪的事情。确保在更新.htaccess后清除浏览器缓存。

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]