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

旧域名重定向至新域名但排除指定HTML文件的htaccess配置问题

旧域名重定向新域名并排除指定文件的解决方案

刚好我之前处理过类似的重定向需求,给你一个精准的配置,直接就能用在Apache的.htaccess或者服务器配置文件里:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 匹配根目录下的a.html,跳过后续重定向规则
    RewriteRule ^a\.html$ - [L]
    
    # 仅针对old.com域名的请求进行重定向
    RewriteCond %{HTTP_HOST} ^old\.com$ [NC]
    # 将旧域名下的所有路径重定向到新域名对应路径,永久重定向
    RewriteRule ^(.*)$ https://new.com/$1 [R=301,L]
</IfModule>

规则细节解释:

  • RewriteEngine On:开启Apache的URL重写引擎,这是所有重写规则生效的前提。
  • RewriteRule ^a\.html$ - [L]:
    • ^a\.html$是精准匹配规则,确保只有根目录下的a.html会被匹配(如果是子目录里的a.html,比如/sub/a.html,这条规则不会生效);
    • -表示不对这个请求做任何重写操作;
    • [L]标记代表“Last”,意思是匹配到这条规则后,直接停止后续所有重写规则的执行,这样a.html就不会被后面的重定向规则处理了。
  • RewriteCond %{HTTP_HOST} ^old\.com$ [NC]:
    • 这条是重写条件,判断当前请求的域名是否是old.com;
    • [NC]是“No Case”的缩写,意思是不区分大小写,所以Old.com、OLD.COM这类请求也会被匹配到。
  • RewriteRule ^(.*)$ https://new.com/$1 [R=301,L]:
    • ^(.*)$会捕获old.com后面的所有路径内容(比如/b.php、/c.xml);
    • https://new.com/$1会把捕获到的路径拼接到新域名后面,实现对应路径的重定向;
    • R=301表示这是永久重定向,对搜索引擎SEO友好,如果只是测试阶段,可以改成R=302临时重定向;
    • [L]同样表示执行完这条规则后停止后续处理。

注意事项:

  • 确保你的Apache服务器已经启用了mod_rewrite模块,如果没启用,需要先在服务器配置里开启它;
  • 如果是用.htaccess文件配置,要确保服务器允许.htaccess生效(配置里的AllowOverride All);
  • 测试的时候可以用浏览器的开发者工具查看网络请求,确认重定向状态码和目标地址是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:38:18