双域名指向同一网站时能否保留访问所用域名在地址栏显示
双域名同站点保留原域名访问方案
完全可以实现你需要的效果,无需额外跳转即可让两个域名访问同一个站点时,地址栏保留用户实际访问的域名。
核心实现逻辑
无需特殊开发,只要满足两个条件即可:
- 两个域名都解析到同一站点对应的服务器IP/托管节点
- Web服务器配置中,两个域名都绑定到同一个站点的根目录,且不设置互相跳转的规则
具体操作步骤
1. 域名解析配置
将A.com和B.com的解析记录(优先用A记录,用CDN的话填CNAME记录)都指向你站点所在服务器的IP地址/CDN别名地址,两个域名的解析目标完全一致即可。
2. Web服务器绑定配置
根据你用的服务器类型,添加两个域名的绑定规则即可:
Nginx 配置示例
在站点对应的server配置块中,把两个域名同时加入server_name字段:
server { listen 80; listen 443 ssl; # 同时填写两个域名,空格分隔即可 server_name a.com b.com; # 两个域名共用同一个站点根目录 root /www/wwwroot/your_site; index index.html index.htm index.php; # 剩余的SSL配置、伪静态规则、PHP处理规则等保持原有配置即可 # 不要添加rewrite规则将其中一个域名跳转到另一个域名 }
修改后执行nginx -s reload重载配置生效。
Apache 配置示例
在站点对应的VirtualHost配置块中,用ServerAlias添加第二个域名:
<VirtualHost *:80> ServerName a.com # 第二个域名填到ServerAlias字段 ServerAlias b.com DocumentRoot /www/wwwroot/your_site # 其他配置保持原有设置即可 </VirtualHost>
修改后重启Apache服务生效。
面板类操作(宝塔、cPanel等)
直接在已有站点的「域名管理」功能中,选择「添加域名别名/附加域名」,将第二个域名绑定到该站点即可,不要设置域名跳转规则。
3. 站点内部链接适配
站点内的跳转链接尽量使用相对路径(例如/list/1.html),不要写死带域名的绝对路径(例如https://a.com/list/1.html),否则用户点击链接后会跳转到固定域名,破坏地址栏显示效果。
注意事项
如果需要做SEO优化避免重复内容被搜索引擎收录,可以在页面头部添加canonical标签指定你首选的主域名即可,该标签只会告知搜索引擎首选收录地址,完全不会影响用户访问时的地址栏显示效果。
内容的提问来源于stack exchange,提问作者Christopher Hall
相关产品推荐
相关产品推荐

