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

非WWW转WWW及指定顶级域名重写规则优化求助

解决多域名到www.example.com的301重定向问题

你现在的规则确实只覆盖了example.co.uk(不管带不带www前缀)的重定向场景,没处理example.com裸域名跳转到www.example.com的情况。这里有个简洁的规则集,能一次性搞定所有你需要的重定向需求:

# 过滤掉已经是目标域名的请求,避免循环重定向
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# 仅匹配我们需要处理的两个域名(带/不带www都包含)
RewriteCond %{HTTP_HOST} ^(www\.)?(example\.co\.uk|example\.com)$ [NC]
# 永久重定向到目标域名,保留原请求路径
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

我给你拆解下每条规则的作用:

  • 第一条RewriteCond:检查当前请求的主机名不是www.example.com(!^表示取反,[NC]忽略大小写),这样就不会对已经是目标地址的请求做处理,防止出现循环重定向的问题。
  • 第二条RewriteCond:专门限定只处理我们关心的两个域名——不管带不带www的example.co.uk和example.com,如果你的服务器上还绑定了其他站点,这条规则能避免误操作影响其他域名。
  • RewriteRule:把请求的完整路径(^(.*)$)原封不动地重定向到https://www.example.com/$1,[R=301]是永久重定向,对SEO更友好;[L]表示这是最后一条执行的规则,匹配后就不再往下走了。

如果你的站点已经启用了HTTPS,建议用https://作为目标协议;如果还没配置HTTPS,暂时用http://也可以,后续切换时再修改就行。

要是你确定服务器上只有这两个域名,还可以简化掉第二条RewriteCond,直接用下面的版本,更精简:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

不过还是更推荐带第二条条件的版本,安全性更高,能避免意外重定向其他可能绑定的域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:31