在.htaccess中实现通配符子域名重定向至对应主域名(无www)
WordPress Multisite 通配符子域名定向到对应主域名的.htaccess配置
要解决通配符子域名跳转到对应主域名而非网络主站的问题,你需要在WordPress自动生成的多站点.htaccess规则之前添加自定义重定向规则,确保通配符子域名的请求先被处理。
具体配置代码
# 匹配任意通配符子域名,重定向到对应主域名 RewriteEngine On RewriteCond %{HTTP_HOST} ^[^.]+\.([^.]+\.[^.]+)$ RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
规则说明
RewriteCond %{HTTP_HOST} ^[^.]+\.([^.]+\.[^.]+)$:该条件匹配形如anything.site2.com的通配符子域名,通过正则捕获主域名部分(如site2.com)并存储到变量%1中。RewriteRule ^(.*)$ https://%1/$1 [R=301,L]:将请求永久重定向到捕获的主域名,同时保留原请求的路径(比如anything.site2.com/post/123会跳转到site2.com/post/123)。R=301表示永久重定向,L表示执行完该规则后停止后续规则匹配。
注意事项
- 确保CyberPanel已为每个子站点配置了对应的通配符域名解析(即
*.site2.com指向你的服务器IP)。 - 若站点仍使用HTTP协议,可将规则中的
https://替换为http://;或者使用%{REQUEST_SCHEME}自动适配协议:%{REQUEST_SCHEME}://%1/$1。 - 测试阶段建议先用
R=302临时重定向,确认跳转逻辑正常后再改为R=301永久重定向,避免浏览器缓存错误的重定向规则。 - 必须将这段规则放在WordPress多站点默认的Rewrite规则之前,否则WP的规则会优先匹配并将请求导向主站点。
内容的提问来源于stack exchange,提问作者Tamseel Ahmad
相关产品推荐
相关产品推荐

