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

如何用单个.htaccess文件将多域名URL 301重定向至新域名URL

Apache多域名301重定向解决方案(.htaccess实现)

你之前的代码失效是因为Redirect指令仅匹配URL路径,不会校验请求的域名——不管访问哪个旧域名的/url.html,都会被第一条规则拦截,导致所有请求都跳转到同一个目标地址。要实现分域名的精准重定向,得用mod_rewrite结合域名判断来完成。

正确的.htaccess配置代码

RewriteEngine On

# 处理old-domain1.com的指定页面重定向
RewriteCond %{HTTP_HOST} ^old-domain1\.com$ [NC]
RewriteRule ^url\.html$ https://newsite.com/url-from-domain1.html [R=301,L]

# 处理old-domain2.com的指定页面重定向
RewriteCond %{HTTP_HOST} ^old-domain2\.com$ [NC]
RewriteRule ^url\.html$ https://newsite.com/url-from-domain2.html [R=301,L]

# 处理old-domain3.com的指定页面重定向
RewriteCond %{HTTP_HOST} ^old-domain3\.com$ [NC]
RewriteRule ^url\.html$ https://newsite.com/url-from-domain3.html [R=301,L]

规则说明

  • RewriteCond %{HTTP_HOST} ^old-domain1\.com$ [NC]:校验当前请求的域名是否为old-domain1.com,[NC]表示不区分大小写(兼容Old-Domain1.com这类大小写变体)
  • RewriteRule ^url\.html$ https://newsite.com/url-from-domain1.html [R=301,L]:当域名条件匹配时,针对/url.html路径执行301永久重定向,[L]表示匹配后不再执行后续规则,避免冲突

批量重定向扩展示例

如果旧域名下有大量页面需要对应重定向,可以按域名分组添加规则:

# old-domain1.com批量页面重定向
RewriteCond %{HTTP_HOST} ^old-domain1\.com$ [NC]
RewriteRule ^page1\.html$ https://newsite.com/new-page1.html [R=301,L]
RewriteRule ^article/(.+)$ https://newsite.com/new-article/$1 [R=301,L]

注意事项

  1. 确保服务器已启用mod_rewrite模块
  2. 测试阶段建议先用R=302(临时重定向),确认规则生效后再改为R=301,避免浏览器缓存错误的重定向规则
  3. 网站根目录的Apache配置需允许.htaccess生效(设置AllowOverride All)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:05:05