如何使用 .htaccess 将自定义 URL 旧域名替换为新域名

如何使用 .htaccess 将自定义 URL 旧域名替换为新域名

如何用新域名和新永久链接替换整个网站的所有 URL?我的网站上有 5k 个 URL 需要替换。

例子 :

  • 当前网址: oldomain.com/2020/12/data-raid-4963.html
    替换为sub.newdomain.com/4963-2/

  • 当前网址: olddomain.com/2019/09/data-raid-2125.html
    替换为: sub.newdomain.com/2125-2/

答案1

由于域指向同一台服务器,您需要使用根文件顶部的 mod_rewrite 执行以下操作.htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule ^20\d\d/\d\d/[a-z-]+-(\d+)\.html$ https://sub.newdomain.com/$1-2/ [R=301,L]

我假设data-raidURL 路径部分只能由 1 个或多个a-z(小写) 或-(连字符) 字符组成。如果始终是字面意思data-raid(根据您的示例),则[a-z-]+在正则表达式中相应地进行替换。

反向$1引用包含 URL 路径末尾紧接在 之前的数字序列.html。换句话说,就是捕获的子模式 的内容(\d+)

您应该首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。

参考:

相关内容