Apache推荐用Include指令将旧域名301重定向规则分离为独立文件(如redirect-old-domain.conf),通过RewriteEngine、RewriteCond和RewriteRule实现全站跳转,并在虚拟主机配置中引入该文件,需确保mod_rewrite启用且语法正确。

Apache 支持用 Include 指令将重定向规则从主配置中分离出来,便于维护和复用。把旧域名的全站 301 规则单独存为一个文件(如 redirect-old-domain.conf),再通过 Include 引入,是生产环境中推荐的做法。
创建独立的重定向规则文件
在服务器上新建一个纯文本文件,例如:/www/server/apache/conf/extra/redirect-old-domain.conf
(路径可自定义,但需确保 Apache 有读取权限)
文件内容如下(以旧域名 old-site.com 全量跳转到 https://new-site.com 为例):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.com$ [NC]
RewriteRule ^(.*)$ https://new-site.com$1 [R=301,L]
说明:
• RewriteCond 同时匹配 old-site.com 和 www.old-site.com;
• $1 保留原始请求路径,实现路径级精准跳转;
• [R=301,L] 表示永久重定向且终止后续规则匹配。
在站点配置中引入该文件
进入宝塔面板【网站】→ 点击目标站点【设置】→ 【配置文件】选项卡,找到 <VirtualHost> 块内部(通常在 DocumentRoot 或 Directory 配置之后),插入:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
Include /www/server/apache/conf/extra/redirect-old-domain.conf
注意:
• 路径必须写绝对路径;
• 确保该路径在 Apache 的 ServerRoot 范围内,或已在主配置中通过 IncludeOptional 或目录级 AllowOverride All 开放;
• 若使用 .htaccess 方式,则无需 Include,直接放根目录即可,但此处强调的是服务端全局配置方式。
启用 mod_rewrite 并验证语法
确保 Apache 已启用重写模块:
- 宝塔面板中:【软件管理】→ 找到 Apache → 【设置】→ 【配置修改】→ 确认
rewrite_module已勾选并启用; - 命令行验证:
apachectl -t应返回Syntax OK; - 重启 Apache 或点击宝塔中该站点右侧的【重载配置】使变更生效。
进阶建议:支持多旧域名或 HTTPS 统一处理
若需同时处理多个旧域名,可在同一 redirect-old-domain.conf 中追加多组 RewriteCond + RewriteRule;
若旧站存在 HTTP/HTTPS 混合访问,建议先统一强制跳转到 HTTPS 新站,可补充:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^new-site\.com$ [NC]
RewriteRule ^(.*)$ https://new-site.com$1 [R=301,L]
这样能覆盖所有非目标域名 + 非 HTTPS 请求,确保最终全部归一到 https://new-site.com。

















