![如何使用 .htaccess 将自定义 URL 旧域名替换为新域名](https://linux22.com/image/784860/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20.htaccess%20%E5%B0%86%E8%87%AA%E5%AE%9A%E4%B9%89%20URL%20%E6%97%A7%E5%9F%9F%E5%90%8D%E6%9B%BF%E6%8D%A2%E4%B8%BA%E6%96%B0%E5%9F%9F%E5%90%8D.png)
如何用新域名和新永久链接替换整个网站的所有 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(临时)重定向进行测试,以避免潜在的缓存问题。
参考: