去掉不必要的301跳转

Posted onLeave a commentCategories技术文章

公司一个运营多年的WordPress网站,access log里301跳转的,有三分之一来自于修改了permalink后的跳转。一开始运用的URL格式是/YYYY/MM/DD/slug格式,不知道何时出于什么目的,直接改为了/slug格式。然后年久失修,成千上万篇老文章里,仍然是旧的URL。

乍看没什么大问题,反正301跳转了,对SEO影响也不是很大。架不住量多啊,每天上万的跳转,不是很有这必要的。老板开口了这活得干不是。一劳永逸的办法,无非是直接更新掉所有老文章,把旧URL里的日期删掉。

一开始的想法是得自己写个脚本,遍历一下wp_posts表,读取,替换,更新。这个事情也在各种其他任务里做了无数次了。正要动手,突然想,是不是wp-cli也可以用来做这个事情呢?

还真可以。话不多说,直接上命令

$ wp search-replace --regex '(<=example\.com\/)\d{4}\/\d{2}\/\d{2}\/' '' wp_posts --include-columns=post_excerpt,post_content

wp-cli里的search-replace命令用的比较多了,但是正则查询替换之前并未去研究。这里唯一比较烧脑的,就是正则表达式里的反向预查了。我只希望匹配本站的链接,但是域名不能作为被替换的一部分。上述正则完美解决了这个问题,只匹配我需要删除的那些日期。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注