Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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_Url_Trailing Slash - Fatal编程技术网

PHP能够从带有斜杠的页面访问根目录中的页面

PHP能够从带有斜杠的页面访问根目录中的页面,php,.htaccess,url,trailing-slash,Php,.htaccess,Url,Trailing Slash,我们的PHP站点存在问题: 问题如下,例如,如果您要访问,然后放置一个尾随斜杠,它将返回根目录的索引页。从那里,你可以放置任何页面,也就是说,它会返回该页面。我们需要停止这种行为,或者采取可行的措施来阻止这些页面被访问 由于页面试图从错误的目录中获取CSS,这就给我们带来了很多关于重复内容和未被移动的页面的问题。我们已尝试删除服务器上的所有.htaccess文件,但这并没有解决问题。我对带有斜杠的文件以及如何将文件解释为目录做了大量的研究,但找不到任何对我有帮助的东西 我认为您需要设置一个404

我们的PHP站点存在问题:

问题如下,例如,如果您要访问,然后放置一个尾随斜杠,它将返回根目录的索引页。从那里,你可以放置任何页面,也就是说,它会返回该页面。我们需要停止这种行为,或者采取可行的措施来阻止这些页面被访问


由于页面试图从错误的目录中获取CSS,这就给我们带来了很多关于重复内容和未被移动的页面的问题。我们已尝试删除服务器上的所有.htaccess文件,但这并没有解决问题。我对带有斜杠的文件以及如何将文件解释为目录做了大量的研究,但找不到任何对我有帮助的东西

我认为您需要设置一个404重定向,因此它不会返回该页面,而是重定向到一个404页面。

使用
.htaccess
,您可以重定向所有
.php/…
页面:

RewriteEngine on
RewriteRule ^(.+?\.php)/ $1 [NC,L,R=301]
您还可以通过以下方式更改apache配置:

AcceptPathInfo Off
但在这种情况下,将返回404错误

我想我记得15年前发生过一次这样的事情,但我完全忘记了是怎么解决的。我认为这是一个apache设置问题(htaccess不会成为问题,php肯定不会这样做)。你在运行apache吗?或者另一个Web服务器?我们的域是一个基于Linux的域,有Godaddy,我试着联系他们,但他们不知道。我们有一个404页面集,如果你输入它,它会带你进入该页面。这里的问题是,带有尾随斜杠的文件被解释为一个目录,该目录指向根目录。太棒了!这就解决了问题。你知道为什么会这样吗?如果能够理解它发生的原因以及是否有办法在源代码处阻止它,那就太好了。我认为这通常与页面中或用户输入的错误url有关。但是,在中没有任何内容,该目录不存在,该文件不存在,将其放入web浏览器应返回404页面。我不明白一个错误的url条目怎么会导致该页面以某种方式存在?通常情况下,斜杠后的所有内容都会被忽略。随着一个相对坏链接问题的增加。