Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
.htaccess url中.php之后不存在的文件夹不提供404(index.php/sdfsf/)_.htaccess_Url_Redirect_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess url中.php之后不存在的文件夹不提供404(index.php/sdfsf/)

.htaccess url中.php之后不存在的文件夹不提供404(index.php/sdfsf/),.htaccess,url,redirect,mod-rewrite,url-rewriting,.htaccess,Url,Redirect,Mod Rewrite,Url Rewriting,我的网站有一个问题,因为在.php文件之后的每个不存在的文件夹或url都不被视为404 示例: 该示例显示了my index.php的精简版本,但它应该显示一个404或更好的重定向到index.php 我在我的网站上的每个.php文件中都发现了这个bug 示例: 如何解决这个问题?因为谷歌开始索引这些不存在的页面,这会导致重复的内容 我在谷歌上搜索过,但找不到正确的搜索词来找到这个问题的答案 非常感谢在脚本标记.php被添加为名为PATH\u INFO的环境变量后所做的任何事情 首先也是最重要的

我的网站有一个问题,因为在.php文件之后的每个不存在的文件夹或url都不被视为404

示例:

该示例显示了my index.php的精简版本,但它应该显示一个404或更好的重定向到index.php

我在我的网站上的每个.php文件中都发现了这个bug

示例:

如何解决这个问题?因为谷歌开始索引这些不存在的页面,这会导致重复的内容

我在谷歌上搜索过,但找不到正确的搜索词来找到这个问题的答案


非常感谢

在脚本标记
.php
被添加为名为
PATH\u INFO
的环境变量后所做的任何事情

首先也是最重要的,你需要弄清楚这些链接是从哪里来的,谷歌是从某处获得它们的,你应该关闭它们,不管是坏的内部链接还是坏的网站地图,谁知道呢

您可以在Apache中禁用
Accept Path Info
,甚至可以在
.htaccess
文件中添加
acceptpath Info off

您还可以将任何访问重定向到具有路径信息且带有
301
410
重定向头的脚本,如下所示:

if( $_SERVER['PATH_INFO'] ){
    $redirect = current( explode( '.php/', (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" ) ).'.php';

    header('HTTP/1.1 410 Gone');
    header('Location: '. $redirect);
    exit();
}

嗨,我不能使用基于php的解决方案。这将包括太多的编辑。我必须编辑每个.php文件以包含此检查。您的“AcceptPathInfo关闭”不起作用。我试过这个,它似乎起到了作用,但我不知道它是否有任何不必要的副作用。重写cond%{REQUEST_FILENAME}-重写规则(.*.php/(.*)$[L,R=301]