如何重定向海量URL?

时间:2016-11-24 作者:fabio

我有一个名为“Collections”的自定义帖子类型,其结构如下:

http://example.com/collections/artwork-name/

现在,这个集合CPT有4个类别,我已经添加到permalink中,如下所示

http://example.com/collection/paintings/artwork-name/

http://example.com/collection/sculptures/artwork-name/

http://example.com/collection/drawings-watercolours/artwork-name/

http://example.com/collection/past-sales/artwork-name/

出于SEO原因,我需要将旧URL重定向到新URL。我面临的问题是,由于URL现在有4种不同的组合,我需要找到一种方法,通过识别其基本类别(每个URL只有一个类别)来匹配旧URL和新URL。

我尝试获取当前URL,查看是否包含字符串部分/集合/以及它是哪个类别的一部分,但没有成功。

我认为另一种可行的方法是匹配/collections/(old)和/collections/(new)之后的URL的最新部分,然后检查它的类别。

我会用htaccess手工完成,但我有500多个URL。

你将如何解决这个问题?

1 个回复
SO网友:Dan.

在一天结束时,你将把东西放进你的.htaccess 文件但是,可以通过以下方法加快速度。。。

您希望最终得到两个列表,从wp_posts 桌子两个列表具有相同的字段/列:Post ID;并发布URL。

列表1-创建时未将帖子分类

列表2-在您将它们全部分类后创建。

然后,由于两个列表将具有相同的Post ID列,您可以将它们合并在一起:

`Old URL      |      New URL`
 -------------|--------------
 post1 old url| post 1 new url
然后,您可以生成一个要粘贴到.htaccess file. 您可以编写一个简单的脚本,将上面列表中的每一行转换为:

Redirect 301 post1/old/url post1/new/url
以上每一步都有很多方法,但我相信你一定能想出一个办法。将是基本的PHP和MySQL查询。也许可以直接从phpmyadmin 并导出为CSV。

相关推荐

Https://mydomain/wp-admin重定向至wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1

无论何时我进入https://mydomain/wp-admin未登录时,我被重定向到wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1 在一些帮助下,我创建了以下代码来重定向登录到wp的用户。要转发到所需自定义页面的php url:function redirect_wp_login_to_custom_login() { global $pagenow; $red