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

如何为动态创建的子域名添加前缀www?

解决动态子域名添加www前缀并强制HTTPS的问题

我来帮你搞定这个问题!你目前的.htaccess规则只处理了主域名的HTTP转HTTPS,但没覆盖动态生成的子域名,也没实现子域名加www前缀的需求。下面是调整后的完整规则,以及详细说明:

修改后的.htaccess配置

RewriteEngine On

# 第一步:强制所有请求(主域名+子域名)使用HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# 第二步:给所有非www的域名(含主域名和任意子域名)添加www前缀
# 排除已带www的域名,防止循环重定向
RewriteCond %{HTTP_HOST} !^www\. [NC]
# 只匹配你的主域名及其子域名,避免影响其他绑定的域名
RewriteCond %{HTTP_HOST} ^(?:.*\.)?example\.com$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

规则细节说明

  • HTTPS强制规则:不管是主域名example.com还是用户创建的abc.example.com,只要是HTTP请求,都会被重定向到对应的HTTPS地址。用%{HTTP_HOST}自动获取当前域名,不用硬编码,适配所有子域名。
  • www前缀添加规则:
    • 第一个条件%{HTTP_HOST} !^www\. [NC]:专门过滤掉已经以www开头的域名,避免出现www.www.abc.example.com这种循环错误。NC表示不区分大小写,兼容大写的WWW情况。
    • 第二个条件%{HTTP_HOST} ^(?:.*\.)?example\.com$ [NC]:确保只处理你的域名体系,不会影响服务器上其他可能存在的网站。(?:.*\.)?是一个非捕获组,能匹配空(对应主域名)或者任意子域名前缀(比如abc.、xyz.)。
    • 重定向时直接在原域名前拼接www.,保留原请求路径,完美实现abc.example.com → www.abc.example.com、example.com → www.example.com的跳转。

额外注意点

  • 一定要确保你的cPanel配置了通配符SSL证书(*.example.com),否则www.abc.example.com会出现SSL证书错误,用户访问会被浏览器拦截。
  • 测试阶段建议把R=301改成R=302(临时重定向),确认规则完全生效后再改回301(永久重定向)——因为301会被浏览器缓存,一旦写错规则,清理缓存会很麻烦。
  • 如果你的主域名之前有单独的www重定向规则,这个新规则会完全覆盖并兼容,不需要保留旧规则。

内容的提问来源于stack exchange,提问作者G.Cloud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:07:11