如何在.htaccess中设置旧域名全局重定向至新域名根目录?
旧域名全局重定向到新域名根目录的解决方案
嘿,我来帮你搞定这个全局重定向的问题!你要的是把旧域名下所有页面都直接跳转到新域名的根目录,不带原来的路径,对吧?我给你分两种最常见的服务器环境来写规则,应该能解决你之前的错误跳转问题:
Apache 服务器(.htaccess 配置)
把下面的规则放到旧域名根目录的 .htaccess 文件里就行,记得替换成你的实际域名:
# 旧域名全局重定向到新域名根目录 RewriteEngine On # 匹配旧域名(包含带www和不带www的情况) RewriteCond %{HTTP_HOST} ^old-domain\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$ # 重定向所有路径到新域名根,强制不带原路径 RewriteRule ^(.*)$ https://new-domain.com/ [R=301,L]
关键说明:
R=301:表示永久重定向,对SEO友好,搜索引擎会更新索引指向新域名;如果还在测试阶段,可以先用R=302(临时重定向),避免浏览器缓存错误的跳转规则。L:表示这是最后一条执行的规则,防止后续其他规则干扰重定向逻辑。- 结尾的
/:确保跳转目标是新域名的根目录,不会把旧路径附加到新域名后面。
Nginx 服务器(配置文件)
找到旧域名对应的 server 块配置,替换成下面的内容(同样替换实际域名):
# 旧域名全局重定向到新域名根目录 server { listen 80; listen 443 ssl; # 如果旧域名启用了HTTPS,保留这一行 server_name old-domain.com www.old-domain.com; # 如果旧域名有SSL证书,在这里添加证书路径(没有的话可以删掉下面两行) # ssl_certificate /usr/local/nginx/conf/certs/old-domain.crt; # ssl_certificate_key /usr/local/nginx/conf/certs/old-domain.key; # 直接重定向所有请求到新域名根目录 return 301 https://new-domain.com/; }
关键说明:
Nginx的这个配置更直接,不管用户请求旧域名的任何路径,都会直接跳转到新域名的根目录,完全不会携带原路径,也不用担心循环跳转的问题(只要新域名的 server 块是独立配置的就行)。
测试小技巧
配置完成后,你可以用浏览器的隐私模式访问旧域名的任意页面,比如 https://old-domain.com/any/old/path,确认是否直接跳转到 https://new-domain.com/ 而不是 https://new-domain.com/any/old/path。
内容的提问来源于stack exchange,提问作者Beat Richli
相关产品推荐
相关产品推荐

