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

HTAccess指定URL重定向至新域名页面,其余跳转至根目录问题

解决旧域名特定URL重定向问题

嘿,我来帮你搞定这个重定向的麻烦~ 你现在遇到的问题是因为配置里混用了两种不同的Apache重定向模块指令,而且规则顺序不对,导致特定页面的重写被全局规则覆盖了。

问题根源分析

你当前的配置里同时用了mod_alias的Redirect指令和mod_rewrite的规则,还中途关闭了RewriteEngine,这会让Apache的处理逻辑混乱:要么特定页面的Redirect被后面的全局RewriteRule覆盖,要么因为RewriteEngine关闭,后面的规则根本没生效。而且两种模块的执行优先级不同,混用很容易出问题。

修复后的配置方案

统一用mod_rewrite来处理所有重定向,把特定页面的规则放在最前面,确保它先被匹配执行:

RewriteEngine On

# 优先处理特定URL的重定向:旧域名/travel/ferry.html → 新域名/ferry/
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteRule ^travel/ferry\.html$ http://www.new-domain.com/ferry/ [R=301,L]

# 其余所有URL统一跳转到新域名根目录
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteRule ^ http://www.new-domain.com/? [R=301,L]

配置说明

  • 规则顺序很重要:特定页面的规则放在最前面,加上L标志(Last),表示匹配到这条规则后就停止后续规则的执行,不会被后面的全局规则覆盖。
  • 统一用mod_rewrite:避免mod_alias和mod_rewrite的指令冲突,确保逻辑一致。
  • 限定旧域名:通过RewriteCond只对旧域名生效,不会影响新域名的正常访问。

测试注意事项

  • 测试前一定要清除浏览器缓存,因为301是永久重定向,浏览器会缓存旧的跳转记录,可能导致新配置不生效。
  • 确认你的Apache服务器已经启用了mod_rewrite模块(可以通过a2enmod rewrite命令开启,然后重启Apache)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:07:35