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

如何让同一WordPress站点在两个不同URL下运行?

实现单WordPress实例多域名差异化展示方案

核心前提

先完成基础域名配置:

  • 将两个域名(如www.brand1.com和www.brand2.com)指向同一服务器主机,在主机面板中添加为别名域名(不同主机可能叫Parked Domain/Addon Domain)。
  • 修改wp-config.php,添加动态域名配置,避免固定URL导致的资源加载异常:
    define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
    define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
    

差异化内容实现(两种可选方案)

1. PHP后端判断(更可靠,不受前端JS禁用影响)

在主题文件或自定义插件中,通过当前访问域名输出差异化内容:

  • 替换品牌Logo示例:
    $current_domain = $_SERVER['HTTP_HOST'];
    if ($current_domain === 'www.brand1.com') {
        echo '<img src="' . get_stylesheet_directory_uri() . '/assets/brand1-logo.png" alt="Brand 1">';
    } elseif ($current_domain === 'www.brand2.com') {
        echo '<img src="' . get_stylesheet_directory_uri() . '/assets/brand2-logo.png" alt="Brand 2">';
    }
    
  • 替换广告示例:
    if ($current_domain === 'www.brand1.com') {
        echo '<div class="ad-block">' . get_option('brand1_ad_code') . '</div>';
    } else {
        echo '<div class="ad-block">' . get_option('brand2_ad_code') . '</div>';
    }
    
    可以配合WordPress自定义字段功能,在后台统一管理两个域名的广告代码。

2. JavaScript前端实现(适合快速迭代场景)

在主题footer.php或自定义JS文件中,通过当前域名替换页面元素:

  • 替换Logo和广告示例:
    const currentDomain = window.location.hostname;
    // 替换Logo
    const logo = document.querySelector('.site-header .logo');
    if (currentDomain === 'www.brand1.com') {
        logo.src = '/wp-content/themes/your-theme/assets/brand1-logo.png';
        logo.alt = 'Brand 1';
    } else if (currentDomain === 'www.brand2.com') {
        logo.src = '/wp-content/themes/your-theme/assets/brand2-logo.png';
        logo.alt = 'Brand 2';
    }
    // 替换广告容器内容
    const adContainer = document.getElementById('main-ad');
    if (currentDomain === 'www.brand1.com') {
        adContainer.innerHTML = '<div class="brand1-ad">Brand1专属广告</div>';
    } else {
        adContainer.innerHTML = '<div class="brand2-ad">Brand2专属广告</div>';
    }
    

服务器配置补充

  • Apache:保持默认WordPress的.htaccess规则即可,无需额外修改路径重写。
  • Nginx:在server块中添加两个域名作为server_name:
    server {
        listen 443 ssl;
        server_name www.brand1.com www.brand2.com;
        root /var/www/wordpress;
        index index.php;
    
        # 其他WordPress常规Nginx规则(如伪静态、SSL配置)
    }
    

注意事项

  • 为两个域名配置统一的SSL证书(通配符证书或多域名证书),确保HTTPS访问正常。
  • 禁用WordPress多站点(Multisite),避免数据库表分离导致的数据不共享问题。
  • 测试前清空浏览器缓存和服务器缓存,避免旧资源干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:07:17