如何用新域名和新永久链接替换整个网站的所有 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-raid
URL 路径部分只能由 1 个或多个a-z
(小写) 或-
(连字符) 字符组成。如果始终是字面意思data-raid
(根据您的示例),则[a-z-]+
在正则表达式中相应地进行替换。
反向$1
引用包含 URL 路径末尾紧接在 之前的数字序列.html
。换句话说,就是捕获的子模式 的内容(\d+)
。
您应该首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
参考: