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

如何在Apache中将通配符泛子域名重定向到指定子域名

Apache泛子域名重定向到指定站点解决方案

前置准备

  • 首先配置DNS泛解析记录:添加一条A/AAAA记录,主机记录填*,指向Apache服务器的公网IP,确保所有未单独配置的子域名请求能到达服务器
  • 确认Apache已加载mod_alias和mod_rewrite模块,可执行apache2ctl -M(Debian/Ubuntu系)或httpd -M(CentOS/RHEL系)校验,未加载的话修改对应配置开启模块即可

方案1:默认虚拟主机匹配(最稳定,推荐)

Apache虚拟主机默认按配置加载顺序匹配,精确域名的配置优先级高于通配域名,将通配虚拟主机放在所有子域名配置的最前面,就能自动匹配所有未单独配置的子域名请求:

  1. 打开虚拟主机配置文件,常见路径:
    • Debian/Ubuntu:/etc/apache2/sites-available/000-default.conf
    • CentOS/RHEL:/etc/httpd/conf.d/vhost.conf
  2. 添加如下配置,确保该配置在其他单独配置的子域名虚拟host之前:
<VirtualHost *:80>
    ServerName catchall.example.com
    ServerAlias *.example.com
    Redirect permanent / https://error.example.com/
</VirtualHost>

如需处理HTTPS请求,额外添加443端口的通配虚拟主机配置即可,注意要配套部署泛域名SSL证书,重定向规则同上

  1. 校验配置合法性:执行apache2ctl configtest(Debian/Ubuntu系)或httpd -t(CentOS/RHEL系),提示Syntax OK后重载服务生效:systemctl reload apache2(或对应systemctl reload httpd)

方案2:.htaccess规则适配(适合无服务器配置修改权限场景)

如果无法直接修改Apache核心配置,可在站点根目录下创建.htaccess文件,添加如下规则:

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

该方案需要先确认对应站点配置中已开启AllowOverride All,否则.htaccess规则不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:54:09