WordPress网站CNAME记录配置问题:无法通过其他域名加载站点
解决CNAME指向后WordPress跳转到主域名的问题
我太懂你这种头疼的情况了——明明给第二个域名加了CNAME指向主站,结果访问时直接跳回主域名,完全没法在新域名下加载内容。这其实是WordPress的默认绑定逻辑+服务器配置在“捣乱”,下面一步步帮你搞定:
1. 先改WordPress的核心域名绑定
WordPress会把你最初设置的站点地址和WordPress地址硬编码到页面链接、资源路径里,哪怕CNAME解析对了,只要这俩地址还是主域名,就会强制重定向。
你有两种修改方式:
- 后台可视化操作:能登录WordPress后台的话,直接进「设置」→「常规」,把「WordPress地址(URL)」和「站点地址(URL)」全改成你的第二个域名,保存就行。
- 修改wp-config.php兜底:如果后台没法访问,登录服务器找到WordPress根目录的
wp-config.php,加这两行代码(替换成你的新域名):
注意:如果用了HTTPS,一定要带上define('WP_HOME','https://your-second-domain.com'); define('WP_SITEURL','https://your-second-domain.com');https://,不然会出现混合内容报错。
2. 检查Web服务器的重定向规则
不管是Apache还是Nginx,服务器里的重定向规则也可能把新域名踢回主站:
- Apache(.htaccess文件):打开WordPress根目录的
.htaccess,看看有没有类似这样的规则:
有的话要么删掉这条,要么改成允许新域名访问的逻辑:RewriteCond %{HTTP_HOST} !^your-main-domain\.com$ [NC] RewriteRule ^(.*)$ https://your-main-domain.com/$1 [R=301,L]RewriteCond %{HTTP_HOST} !^(your-main-domain\.com|your-second-domain\.com)$ [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] - Nginx配置:找到站点的Nginx配置文件(一般在
/etc/nginx/sites-available/下),检查有没有return 301或者rewrite强制跳主域名的规则。调整成同时匹配两个域名:
改完记得重启Nginx:server { listen 80; server_name your-main-domain.com your-second-domain.com; # 其他常规配置... } server { listen 443 ssl; server_name your-main-domain.com your-second-domain.com; # 这里要确保SSL证书覆盖两个域名(比如通配符证书) # 其他SSL配置... }sudo systemctl restart nginx
3. 清缓存!清缓存!清缓存!
很多时候修改完还是跳,全是缓存的锅:
- 清浏览器的缓存和Cookie,或者直接用无痕模式测试
- 登录WordPress后台,把缓存插件(比如WP Rocket、W3 Total Cache)的缓存清干净
- 如果用了CDN,也要在CDN控制面板里清一遍缓存
4. 检查SSL证书(HTTPS站点必看)
如果新域名开了HTTPS,一定要确保你的SSL证书包含这个域名——要么用通配符证书*.your-domain.com,要么用多域名证书。要是证书不覆盖新域名,浏览器会弹安全提示,WordPress也可能因为SSL问题触发重定向。
最后再提一句:你说的钓鱼风险我懂,确认你是合法持有第二个域名且用途合规哦~
内容的提问来源于stack exchange,提问作者The Odd Developer
相关产品推荐
相关产品推荐

