要求在 Apache 服务器上,通过 PHP 脚本来实现只有当请求来自于 “DDD.com” 时,才返回 HTTP 404 Not Found 状态码。你可以通过以下步骤来实现这个需求:
- 修改 Apache 配置文件:
在 Apache 的配置文件中添加以下内容,使用SetEnvIf
指令匹配请求的来源,如果是 “DDD.com”,则设置一个环境变量。
# 在 Apache 配置中设置环境变量
SetEnvIf Referer "^http://(www\.)?DDD\.com" is_DDD_request
- 编写 PHP 脚本:
创建一个 PHP 脚本 (比如custom404.php
),用于根据环境变量判断是否为 “DDD.com” 的请求,如果是,则返回 404 状态码,否则返回正常内容。
<?php
if (isset($_SERVER['is_DDD_request'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
// 正常返回内容
echo "<h1>Hello, this is a normal page!</h1>";
- 更新 .htaccess 文件:
将请求重定向到 PHP 脚本,根据来路判断是否返回 404。
RewriteEngine On
# 如果 Referrer 是 DDD.com 则重定向到 custom404.php
RewriteCond %{ENV:is_DDD_request} true
RewriteRule ^ - [L]
RewriteRule .* custom404.php [L]
请注意,以上代码是一个基本的示例,实际情况可能需要根据具体需求对代码进行调整。确保在生产环境中测试和验证这些配置,以确保其正常运行并符合预期。
发表回复