我的服务器在我的 php 文件上生成重复的内容。
例如,它会生成如下所示的虚假页面: https://westsidelosangeles.com/surfing-zuma-beach-malibu.php/best-parks-los-angeles.php
这实际上是我的服务器在另一个页面上提供的 2 个页面。
https://westsidelosangeles.com/surfing-zuma-beach-malibu.php https://westsidelosangeles.com/best-parks-los-angeles.php
我应该将我的链接设置为绝对吗?
我应该将此代码添加到我的包含中吗?我应该在哪里添加它?
if (!empty($_SERVER['PATH_INFO'])) {
header("HTTP/1.0 404 Not Found");
die("nothing here");
}
我希望找到一种方法来阻止我的服务器生成数百个虚假页面,如我上面提供的链接。
您绝对可以使用您提供的 PHP 代码片段来检查并阻止不需要的 PATH_INFO 数据。当附加路径附加到 PHP 文件 URL 时,这将有助于防止您的服务器提供内容。
您还可以将其放入脚本开头的命令包含文件中,这样可以确保在处理或输出任何内容之前进行检查。
此外,如果您使用 Apache,您可以使用 .htaccess 来阻止此类 URL
你可以做类似的事情
RewriteEngine On
# Redirect or block URLs with PATH_INFO
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^(.+)\.php/(.+)$ [NC]
RewriteRule . - [R=404,L]
此规则检查请求是否是针对不存在的目录或以 .php/ 结尾的文件,后跟更多字符,它以 404 状态代码响应
我想任何方法都应该解决您的问题,请确保在实施后对其进行良好的测试。
希望有帮助。
谢谢你。我在开始时将下面的代码片段添加到我的 navigation.php 包含文件中,但它不起作用。
<body>
<?php
if (!empty($_SERVER['PATH_INFO'])) {
header("HTTP/1.0 404 Not Found");
die("nothing here");
}
?>
</body>
我的服务器是IONOS。我不确定是不是APACHE
是您给我的 .htaccess 代码片段吗??