Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 存在同名文件夹时不显示网页_Php_.htaccess_Wamp - Fatal编程技术网

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

Php 存在同名文件夹时不显示网页,php,.htaccess,wamp,Php,.htaccess,Wamp,我正在使用WampServer在本地开发一个网站,我目前的结构如下: /css/ /js/ /pictures/ index.php blog.php games.php .htaccess 一切正常,直到我创建了一个名为“/blog”的文件夹。这立刻打破了我的blog.php页面。现在我删除了文件夹,重新启动了WampServer,重新启动了整个计算机,但错误仍然存在。由于某种原因,当我转到mysite/blog时,它会重定向到mysite/blog/并返回一个内部服务器错误。游戏页面没有这

我正在使用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

谢谢

如果存在index.php文件,mysite/blog将在blog文件夹中查找


您仍然可以使用相同名称的文件和文件夹(给定您当前的.htaccess),您只需要访问blog.php,方法是转到mysite/blog.php。如果存在index.php文件,mysite/blog将在blog文件夹中查找


您仍然可以使用相同名称的文件和文件夹(给定您当前的.htaccess),您只需访问mysite/blog.php即可访问blog.php。问题在于htaccess文件和您选择的命名约定

尤其是这一行

RewriteCond %{REQUEST_FILENAME} !-d

表示如果文件不是目录,请使用重写。在/blog的情况下,不满足该条件,并且htaccess不会拉入blog.php,因为/blog实际上是一个目录。删除文件夹应该足以修复它,但老实说,这是自找麻烦。为什么不直接访问blog.php?

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

尤其是这一行

RewriteCond %{REQUEST_FILENAME} !-d

表示如果文件不是目录,请使用重写。在/blog的情况下,不满足该条件,并且htaccess不会拉入blog.php,因为/blog实际上是一个目录。删除文件夹应该足以修复它,但老实说,这是自找麻烦。为什么不直接去blog.php呢?

试试看。您应该打开多视图,这样它就不会尝试模式匹配和做奇怪的事情。请确保在更新.htaccess后清除浏览器缓存

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

试试这个。您应该打开多视图,这样它就不会尝试模式匹配和做奇怪的事情。请确保在更新.htaccess后清除浏览器缓存

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

您想用当前的htaccess规则实现什么?老实说,我是新手,从教程中获得了它。我想让它做的是显示我的页面而不显示扩展名。您想用当前的htaccess规则实现什么?老实说,我是新手,从教程中获取了它。我想让它做的是显示没有扩展名的页面。我不喜欢url中.php扩展名的外观,有没有更安全的方法删除它?我真的不懂htaccess文件。不是你这样做的。答案是避免文件夹与文件同名或处理扩展名。这很有意义,谢谢。现在我必须弄清楚为什么删除文件夹没有帮助。是的,那部分没有意义。好LuckI不喜欢url中.php扩展的外观,有没有更安全的方法删除它?我真的不懂htaccess文件。不是你这样做的。答案是避免文件夹与文件同名或处理扩展名。这很有意义,谢谢。现在我必须弄清楚为什么删除文件夹没有帮助。是的,那部分没有意义。祝你好运