You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止他人在其网站设置通配符重定向指向我的PHP站点?

阻止第三方通配符重定向到你的PHP站点

你可以通过.htaccess(Apache服务器)或PHP代码实现需求,核心思路是识别来自恶意域名的跳转请求并直接拒绝,避免触发无限循环:

一、使用.htaccess(Apache环境)

通过检查请求的Referer头判断来源,对恶意域名的请求返回403禁止访问:

RewriteEngine On
# 匹配所有来自malicious-domain.com及其子域名的跳转请求(替换为实际要阻止的域名)
RewriteCond %{HTTP_REFERER} ^https?://.*malicious-domain\.com [NC]
# 返回403错误并终止请求
RewriteRule ^ - [F,L]
  • [NC]表示忽略大小写匹配
  • [F]标记返回403 Forbidden,[L]表示停止后续规则执行

二、使用PHP代码处理

在站点入口文件(如index.php)开头添加以下代码,识别恶意来源并终止请求:

// 定义需要阻止的恶意域名列表(支持通配符子域名)
$blockedDomains = [
    'malicious-domain.com',
    '*.malicious-domain.com'
];

$referer = $_SERVER['HTTP_REFERER'] ?? '';
$isBlocked = false;

if (!empty($referer)) {
    $refererHost = parse_url($referer, PHP_URL_HOST);
    foreach ($blockedDomains as $domain) {
        // 匹配通配符子域名
        if (str_starts_with($domain, '*.') && str_ends_with($refererHost, substr($domain, 1))) {
            $isBlocked = true;
            break;
        }
        // 匹配精确域名
        elseif ($refererHost === $domain) {
            $isBlocked = true;
            break;
        }
    }
}

if ($isBlocked) {
    http_response_code(403);
    echo "Access Denied";
    exit;
}

注意事项

  • Referer头可能被部分浏览器禁用或伪造,这种方法无法覆盖所有极端场景,但能拦截绝大多数常规重定向请求;
  • 若对方使用反向代理而非3xx跳转,可额外检查X-Forwarded-Host等代理头,逻辑与上述代码一致;
  • 绝对避免通过重定向回恶意域名的方式处理,这会导致浏览器陷入无限循环,直接返回错误是更安全的方案。

内容的提问来源于stack exchange,提问作者Jam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:05:46