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

如何使用.htaccess批量替换全站URL的旧域名与新永久链接(含5000条URL迁移需求)

如何使用.htaccess批量替换全站URL的旧域名与新永久链接(含5000条URL迁移需求)

嗨,兄弟,5000条URL手动改绝对是噩梦级任务!别慌,用Apache的.htaccess写个正则重写规则就能一次性搞定所有这类URL的跳转,效率直接拉满,不用一条一条碰。

先对应你给出的URL模式:

Current URL: oldomain.com/2020/12/data-raid-4963.html
Replace To: sub.newdomain.com/4963-2/
Current URL: olddomain.com/2019/09/data-raid-2125.html
Replace To: sub.newdomain.com/2125-2/

核心需求就是提取旧URL里data-raid-后面的数字,拼上新域名的格式,我们直接用mod_rewrite来实现:

具体实现步骤

  1. 找到旧域名根目录下的.htaccess文件(如果没有就新建一个)
  2. 把下面的规则复制进去:
# 开启重写引擎
RewriteEngine On

# 匹配旧URL格式并跳转至新URL
RewriteRule ^([0-9]{4})/([0-9]{2})/data-raid-([0-9]+)\.html$ https://sub.newdomain.com/$3-2/ [R=301,L]

规则细节解释

  • RewriteEngine On:必须开启这个才能让重写规则生效,Apache默认一般是开启的,要是不行就联系主机商确认mod_rewrite模块是否启用
  • 正则部分^([0-9]{4})/([0-9]{2})/data-raid-([0-9]+)\.html$:
    • ^([0-9]{4}):匹配开头的4位年份(比如2020、2019),用括号捕获为变量$1
    • ([0-9]{2}):匹配中间的2位月份(比如12、09),捕获为$2(这里我们不需要用这个值,所以规则里没用到)
    • data-raid-([0-9]+):匹配data-raid-后面的数字(比如4963、2125),捕获为$3——这是我们要用到的核心值
    • \.html$:匹配URL结尾的.html,确保只匹配目标格式的URL
  • 替换目标https://sub.newdomain.com/$3-2/:用捕获到的数字$3加上-2/,拼上新域名的地址
  • 标记[R=301,L]:
    • R=301:表示永久重定向,对SEO友好,搜索引擎会更新索引到新URL
    • L:表示这是最后一条规则,一旦匹配成功就停止处理后续规则

注意事项

  • 测试阶段建议先用R=302临时重定向,确认所有URL都能正确跳转到目标地址后,再改成R=301,避免出错后没法快速撤回
  • 如果旧域名和新域名不在同一台服务器上,要确保旧域名的服务器还能正常访问,并且.htaccess文件能被正确读取
  • 要是还有其他格式的URL需要迁移,只需要调整正则部分即可,这个规则完全覆盖你给出的示例模式,5000条应该都能搞定

备注:内容来源于stack exchange,提问作者Maone van Cobain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:25:29