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

如何在htaccess中配置301重定向实现旧域名URL跳转到新域名指定路径

问题根因
  • 规则执行顺序错误:全站域名跳转规则(匹配所有路径(.*),携带[L]终止标记)放置在配置靠前位置,请求触发该规则后会直接终止后续规则执行,写在文件末尾的单路径自定义跳转永远不会被触发。
  • 指令混用冲突:同时使用mod_alias的Redirect指令和mod_rewrite的RewriteRule指令,两类指令执行优先级不同,进一步导致自定义跳转失效。
  • 协议配置不一致:全站跳转目标写的是HTTP协议的新域名,和预期的HTTPS跳转目标不符。
解决方案

按以下步骤修改.htaccess文件:

  1. 将单路径自定义跳转统一用RewriteRule编写,放在RewriteEngine On之后、全站域名跳转规则之前,调整后会优先匹配特定路径的自定义跳转,未匹配到的请求才会执行全站域名拼接跳转,同时兼容两类跳转需求。
  2. 修正全站跳转的目标协议为HTTPS,和预期跳转目标的协议保持一致。
  3. 删除原来写在文件末尾的Redirect 301 /x-ee-ee/sub-category/ererrre/ https://www.example1.com/category/exurl规则。
  4. 修改完成后清空浏览器缓存:301为永久重定向,浏览器会缓存旧跳转结果,建议用无痕模式测试避免缓存干扰。

修改后的核心配置段示例如下,其余原有防爆破、Joomla SEF等规则保持不变即可:

RewriteEngine On

# 自定义单路径跳转
RewriteRule ^x-ee-ee/sub-category/ererrre/$ https://www.example1.com/category/exurl [R=301,L]

# 全站旧域名跳转至新域名
RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule (.*)$ https://www.example1.com/$1 [R=301,L]

# 后续原有其他规则保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:06:04