ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

不会代码也能搞定wordpress两个域名访问,报价看这篇

不会代码也能搞定wordpress两个域名访问,报价看这篇 不会代码也能搞定wordpress两个域名访问,报价看这篇 想做个网站,心里直打鼓:自己不会代码,怕搞砸。更头疼的是,明明一个WordPress站点,想同时用两个域名访问,比如 www.abc.com 和 abc.net,怎么配置?找外包问建站报价,几千块报价单甩过来,还没动工就劝退。其实这事没那么玄,今天拿个真实小项目拆解,手把手教你搞定wordpress两个域名访问,全程不写一行复杂代码,连CSS都基本不用碰,新手也能落地。 项目背景:一个WordPress站,为什么非要两个域名? 先说场景。朋友老张做建材出口,之前找了家小公司做了个WordPress官网,主域名 www.zjbuild.com。后来客户反馈,有些海外买家搜 zjbuild.net 也常打错,他怕流量流失,想把 .net 域名也绑上,实现wordpress两个域名访问,点哪个都能进同一个站。 老张自己不会代码,之前让原建站公司改,对方报价800元“域名绑定费”,还要收300元“服务器配置费”,合计1100元。老张觉得离谱——不就是加个域名吗?怎么比建站报价里的基础模板还贵? 这就是很多非技术背景老板的困境:建站报价里,域名解析、SSL、多域名绑定这些“小操作”,常被单独加价。而其实,只要懂点基础配置,自己5分钟就能搞定,零成本。 老张的需求很明确:主域名 www.zjbuild.com 正常访问; 副域名 www.zjbuild.net 访问时,自动跳转到主域名,或直接显示相同内容; 两个域名都支持HTTPS,浏览器不报“不安全”; 不改现有网站结构,不影响SEO收录。这需求,技术难度低,但卡在“不会代码”和“怕改坏”上。老张不是唯一,我经手过不少设计师转前端的客户,UI做得漂亮,一碰服务器配置就懵。其实WordPress的多域名访问,核心不在代码,而在域名解析 + 服务器虚拟主机配置 + WordPress站点URL设置,三步走,逻辑清晰。 技术选型:不写代码,靠配置实现wordpress两个域名访问 先说清楚:我们不修改WordPress核心代码,不碰PHP函数,不写自定义插件。所有操作,都通过面板配置和DNS解析完成,符合W3C标准中关于HTTP重定向(301/302)和域名规范的最佳实践。 为什么选这个方案?因为对非开发者来说,改代码风险高,改错一个分号,整个站白屏。而面板配置是可视化操作,改错也能快速回滚。 技术栈选型如下:服务器:Linux(CentOS 7),宝塔面板(BT Panel)管理; Web服务器:Nginx(轻量,支持虚拟主机配置); 数据库:MySQL 5.7; WordPress版本:6.2(稳定版); SSL证书:Let's Encrypt(免费,自动续期)。为什么用Nginx?因为Apache的.htaccess配置对新手更晦涩,而Nginx的server块结构直观,一个域名一个server块,改起来不串味。宝塔面板里,Nginx的虚拟主机配置是图形化的,点几下就能加副域名。 关键前提:两个域名必须都解析到同一台服务器IP。这是wordpress两个域名访问的物理基础。如果 .net 域名还指向旧服务器,那配了也白搭。 老张的域名都在阿里云,解析操作很简单:主域名 www.zjbuild.com → A记录 → 123.45.67.89(服务器IP); 副域名 www.zjbuild.net → A记录 → 123.45.67.89(同一IP)。这一步,在阿里云DNS控制台,1分钟搞定。不涉及任何代码,纯操作。 核心实现:三步配置,让wordpress两个域名访问生效 现在进入实操。假设老张的网站已经部署在宝塔面板,主域名 www.zjbuild.com 正常访问,SSL已配置。我们要加副域名 www.zjbuild.net,实现wordpress两个域名访问。 第一步:在宝塔面板添加副域名到虚拟主机 登录宝塔面板 → 网站 → 找到 zjbuild.com 站点 → 点击“设置” → “域名管理”。 这里有个关键选项:是否绑定多个域名。点击“添加域名”,输入 www.zjbuild.net,勾选“强制HTTPS”,保存。 宝塔会自动在Nginx配置文件中生成新的server块。我们可以查看 /www/server/nginx/conf/vhost/zjbuild.com.conf 文件,看到类似结构: server {listen 80;server_name www.zjbuild.com www.zjbuild.net;return 301 https://$host$request_uri; }server {listen 443 ssl http2;server_name www.zjbuild.com www.zjbuild.net;ssl_certificate /www/server/panel/vhost/cert/zjbuild.com/fullchain.pem;ssl_certificate_key /www/server/panel/vhost/cert/zjbuild.com/privkey.pem;root /www/wwwroot/zjbuild.com;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;} }注意 server_name 字段,已经包含了两个域名。Nginx会根据请求的Host头,匹配对应的server块,返回相同内容。这就是wordpress两个域名访问的核心机制——虚拟主机基于域名区分,而非IP。 但这里有个坑:SSL证书是否覆盖副域名? 如果Let's Encrypt证书只申请了 zjbuild.com,那访问 www.zjbuild.net 会报证书错误。必须重新申请证书,包含两个域名。 在宝塔SSL面板,选择“申请证书” → 域名填 www.zjbuild.com, www.zjbuild.net → 验证方式选“HTTP”(因为两个域名都解析到本机)→ 申请。成功后,证书文件会更新,Nginx自动重载。 这一步,全程面板操作,零代码。 第二步:修改WordPress站点URL,避免内部链接混乱 很多新手忽略这点:WordPress后台的“固定链接”和“站点URL”如果只设了主域名,副域名访问时,生成的内部链接(如文章URL、图片路径)会指向主域名,导致wordpress两个域名访问时出现“域名跳变”——用户从 .net 进来,点文章,URL变成 .com,体验割裂,也影响SEO。 正确做法:在WordPress后台 → 设置 → 常规,将“WordPress地址”和“站点地址”都改成不带协议的域名,或者使用相对路径。但更稳妥的方式,是通过wp-config.php定义常量: // wp-config.php 中添加 define('WP_HOME', 'https://www.zjbuild.com'); define('WP_SITEURL', 'https://www.zjbuild.com');等等,这样不行!如果写死主域名,副域名访问时,所有资源请求都会指向主域名,虽然内容能加载,但浏览器地址栏始终是主域名,副域名只是“入口”,没有独立存在意义。 正确策略:让WordPress根据当前访问域名动态生成链接。这需要配合Nginx的proxy_set_header和WordPress的wp_redirect函数,但为了不改代码,我们采用更简单方案: 在Nginx层做301重定向,强制所有副域名访问跳转到主域名。 修改Nginx配置,在server_name www.zjbuild.net的块中,添加: server {listen 80;server_name www.zjbuild.net;return 301 https://www.zjbuild.com$request_uri; }server {listen 443 ssl http2;server_name www.zjbuild.net;ssl_certificate /www/server/panel/vhost/cert/zjbuild.com/fullchain.pem;ssl_certificate_key /www/server/panel/vhost/cert/zjbuild.com/privkey.pem;return 301 https://www.zjbuild.com$request_uri; }这样,用户访问 www.zjbuild.net,无论HTTP还是HTTPS,都会被301跳转到 www.zjbuild.com 的对应路径。例如:访问 https://www.zjbuild.net/about.html → 301跳转 → https://www.zjbuild.com/about.html这是最安全、最符合SEO规范的做法。301重定向告诉搜索引擎:“这个域名已永久迁移,权重转移给主域名”。避免两个域名被识别为重复内容,分散权重。 老张的需求是“两个域名都能访问”,但SEO最佳实践是收敛到一个主域名。如果他想让副域名“独立展示”而非跳转,那必须改WordPress代码,使用$_SERVER['HTTP_HOST']动态生成链接,但这超出非开发者能力,且维护成本高。 所以,推荐方案:副域名301跳转到主域名。既满足“访问可达”,又符合W3C HTTP规范中关于重定向的语义,SEO友好。 第三步:验证与测试 配置完成后,必须测试:浏览器无痕模式,访问 http://www.zjbuild.net → 应跳转到 https://www.zjbuild.com; 访问 https://www.zjbuild.net → 同样跳转到主域名HTTPS; 检查跳转链:用Chrome开发者工具 → Network → 查看请求状态码,确认是301,而非302; 检查SSL证书:点击浏览器地址栏锁形图标,查看证书是否包含两个域名; 检查内部链接:跳转后,文章页、产品页的URL是否全部是 www.zjbuild.com 开头。老张测试后,发现一个细节:部分图片链接是绝对路径,指向 www.zjbuild.com,跳转后正常加载,无问题。因为所有资源都从主域名加载,副域名只是入口,不涉及资源分流。 上线与优化:避免踩坑,让wordpress两个域名访问稳定运行 配置完不等于结束。上线后,要注意三点: 1. 监控301跳转是否生效 用工具如 curl -I https://www.zjbuild.net 检查响应头,应返回: HTTP/1.1 301 Moved Permanently Location: https://www.zjbuild.com如果返回200,说明Nginx配置未生效,需检查server_name是否匹配,或重载Nginx:nginx -s reload。 2. 避免“域名循环”陷阱 如果主域名也配置了跳转到副域名,就会形成死循环。确保只有副域名跳转主域名,主域名不跳转任何地方。 3. 备案与合规 如果服务器在国内,两个域名都必须完成ICP备案。阿里云备案系统支持“主域名+子域名”备案,但 .net 域名需单独提交备案申请,周期约7-20天。未备案域名无法解析到国内服务器,会直接拦截。 老张的 .net 域名之前没备案,所以第一步是先提交备案,再配置解析。这步耗时最长,但必须做。 经验总结:不会代码,也能搞定wordpress两个域名访问 老张最终自己搞定了wordpress两个域名访问,没花一分钱。对比原建站公司1100元报价,省下的不只是钱,更是对自己能力的信心。 给非技术背景的朋友三点建议:别被“代码”吓住:WordPress多域名访问,90%靠面板配置,10%靠DNS解析,代码几乎不用碰; 301跳转是SEO底线:副域名独立展示看似灵活,实则分散权重,收敛到主域名才是正解; 备案先行:国内服务器,域名不备案,一切配置白搭。至于建站报价,如果找外包,这类“域名绑定+SSL+301跳转”服务,市场价200-500元是合理区间。超过800元,基本是“知识付费”,不是技术价值。 你更倾向模板建站还是定制开发?欢迎评论。
返回列表