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

如何实现域名转发避免循环重定向?WordPress场景技术咨询

基于Cookie的域名跳转方案(解决收购场景下的循环重定向问题)

针对你描述的收购跳转需求,这里提供两种可行的实现方案,核心思路是用Cookie标记用户是否已查看过收购说明页,仅对首次访问(无标记)的用户执行重定向,避免循环问题。

方案一:Apache .htaccess 配置(适合服务器端直接控制)

1. domainA 的 .htaccess 规则

在domainA根目录的.htaccess文件中添加以下规则,仅当用户未持有visited_acquisition Cookie时,重定向到domainB的收购说明页:

RewriteEngine On
# 排除设置Cookie的专用路径,防止循环
RewriteCond %{REQUEST_URI} !^/set-cookie/?$
# 检查请求中是否不存在目标Cookie
RewriteCond %{HTTP_COOKIE} !visited_acquisition=1 [NC]
# 重定向到domainB的收购说明页,携带来源标记(可选)
RewriteRule ^(.*)$ https://newdomainB.com/acquisition-page?from=domainA [R=302,L]

2. domainA 创建Cookie设置页面

在domainA根目录创建set-cookie.php文件(如果是WordPress,也可以用自定义页面模板替代),内容如下:

<?php
// 设置有效期为1天的Cookie,覆盖domainA全站
setcookie('visited_acquisition', '1', time() + 86400, '/', '.domainA.com', false, true);
// 设置完成后跳回domainA首页
header('Location: https://domainA.com/');
exit;
?>

3. domainB 收购说明页修改

在domainB的收购说明页中,添加一个隐藏iframe用于自动设置domainA的Cookie,同时放置返回原站点的链接:

<!-- 隐藏iframe自动设置Cookie -->
<iframe src="https://domainA.com/set-cookie/" style="display: none; width: 0; height: 0;"></iframe>

<!-- 返回原站点链接 -->
<a href="https://domainA.com/">返回 Company A 原站点</a>

用户打开收购说明页时,iframe会悄悄加载domainA的Cookie设置页面,完成标记;之后返回domainA时,.htaccess检测到Cookie就不会再触发重定向。

方案二:WordPress 代码实现(无需修改服务器配置)

如果不想改动.htaccess,可以直接在domainA的WordPress主题functions.php中添加代码逻辑:

1. domainA 主题 functions.php 代码

// 处理首次访问重定向
add_action('template_redirect', 'acquisition_redirect_check');
function acquisition_redirect_check() {
    // 排除Cookie设置页面
    if (is_page('set-cookie')) return;
    
    // 无Cookie则重定向到收购说明页
    if (!isset($_COOKIE['visited_acquisition'])) {
        wp_redirect('https://newdomainB.com/acquisition-page?from=domainA', 302);
        exit;
    }
}

// 处理Cookie设置
add_action('template_redirect', 'set_acquisition_visitor_cookie');
function set_acquisition_visitor_cookie() {
    if (is_page('set-cookie')) {
        // 设置全站生效的Cookie,有效期1天
        setcookie('visited_acquisition', '1', time() + 86400, '/', '.domainA.com', false, true);
        wp_redirect(home_url('/'));
        exit;
    }
}

然后在WordPress后台创建一个名为set-cookie的空白页面(无需填写内容),用于触发Cookie设置逻辑。

2. domainB 收购说明页修改

和方案一一致,添加隐藏iframe和返回链接即可。

关键注意事项

  • Cookie的domain参数要匹配domainA的主域,比如domainA是www.domainA.com,则设为.domainA.com确保子域名也能识别;如果是顶级域名直接用domainA.com。
  • 使用302临时重定向,避免搜索引擎永久缓存重定向规则,收购完成后可轻松移除。
  • 若用户禁用Cookie,首次跳转后返回仍会触发重定向,这种极端情况可通过URL参数作为备选(比如返回链接改为domainA.com/?skip_redirect=1,然后在代码中检测参数并设置Cookie)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:31:02