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

如何仅重定向特定域名的子域名站点至主域名?技术求助

嘿,这个问题我熟!你之前的规则之所以会把所有域名都重定向,核心问题出在RewriteCond %{HTTP_HOST} ^(.*)$——这个条件会匹配任何请求的主机名,不管是你的example.com子域名,还是新创建的其他域名,都会被一网打尽。

要解决这个问题,我们只需要把RewriteCond的匹配范围缩小到仅针对example.com的子域名即可,同时确保规则只作用在example.com的虚拟主机配置里,不会影响其他站点。

给你调整后的规则:

RewriteEngine On
RewriteBase /
# 只匹配所有以.example.com结尾的子域名(比如something.example.com、anothertext.example.com)
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
# 301永久重定向到主站example.com
RewriteRule ^(.*)$ https://example.com [R=301,L]

关键说明:

  • ^(.+)\.example\.com$ 这个正则表达式的意思是:匹配开头有至少一个字符,且以.example.com结尾的主机名。这样就精准命中了所有子域名,而主域名example.com本身不会被匹配(因为前面没有额外字符)。
  • 如果连www.example.com也想重定向到example.com,这个规则同样适用,因为www.example.com符合子域名的匹配条件。
  • 重要提醒:一定要把这段规则放在example.com对应的<VirtualHost>配置块内部,而不是服务器的全局配置(比如httpd.conf的全局区域)。这样新创建的其他虚拟主机就不会继承这个重定向规则,能正常访问。

你可以测试一下:访问任意子域名比如blablabla.example.com,应该会自动跳转到example.com;而新域名比如newdomain.com则能正常打开,不会被重定向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:35:55