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

如何在同一WordPress站点配置多域名,仅各域名首页不同?

多域名多语言首页配置方案(仅首页差异化)

一、前期准备

  • 把所有目标域名解析到当前WordPress服务器的IP,同时在服务器(Nginx/Apache)配置中,将这些域名指向同一个WordPress站点的根目录。
  • 在WordPress后台创建对应语言的专属首页:比如为abc.com创建中文首页,编辑好内容后记录页面ID(编辑页面时,URL里post=xxx的xxx就是页面ID)。

二、通过代码实现域名匹配切换首页

在当前主题的functions.php文件末尾添加以下代码,替换其中的域名和对应页面ID:

add_filter('pre_get_posts', 'custom_domain_homepage');
function custom_domain_homepage($query) {
    // 仅处理首页的主查询
    if ($query->is_home() && $query->is_main_query()) {
        // 根据访问域名匹配对应首页
        switch($_SERVER['HTTP_HOST']) {
            case 'abc.com':
                $query->set('page_id', 123); // 替换为abc.com对应首页的页面ID
                break;
            case 'def.com':
                $query->set('page_id', 456); // 替换为def.com对应首页的页面ID
                break;
            // 新增其他域名时,按这个格式继续添加分支
            default:
                $query->set('page_id', 789); // 替换为默认域名xyz.com的首页ID
                break;
        }
    }
    return $query;
}

三、后台固定首页设置

进入WordPress后台「设置」→「阅读」,将「您的首页显示」设置为「静态页面」,并把「首页」暂时选择默认的英文首页。上述代码会自动根据访问域名覆盖这个默认设置。

四、缓存配置优化(可选)

如果站点使用了缓存插件(如WP Rocket、W3 Total Cache),需要在缓存规则中添加域名维度的区分,避免不同域名的首页缓存互相覆盖。

以Nginx为例,在站点配置中修改缓存键规则:

set $cache_key "$scheme$request_method$host$request_uri";

确保缓存键包含$host字段,这样不同域名的首页会生成独立的缓存文件。

五、语言标识补充(可选)

如果需要给不同域名的首页设置对应HTML语言标识,可在主题的header.php文件中添加判断:

$lang = 'en-US';
if($_SERVER['HTTP_HOST'] == 'abc.com') {
    $lang = 'zh-CN';
} elseif($_SERVER['HTTP_HOST'] == 'def.com') {
    $lang = 'ja-JP';
}
?>
<html lang="<?php echo $lang; ?>">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:33:13