没有ID匹配的论坛迁移:如何处理301重定向?

时间:2013-12-27 00:02:16

标签: .htaccess redirect seo

我正在将自定义php论坛迁移到新的Discourse论坛。

我的自定义php论坛有这样的网址:

http://www.dday.it/?a=forum&p=topic&oid=18983&threaded

新论坛有这样的网址:

http://meta.discourse.org/t/permission-inconsistency-and-others/11573

当然简单的方法是.htaccess 301重定向,但我有一个问题:当我将数据从mysql迁移到pg时我丢失了ID匹配,因此旧论坛中我的主题的ID不匹配新论坛上相同主题的ID。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不知道301重定向是否是“简单”的方式。您将基本上枚举每个线程ID并将其映射到其新ID以及线程标题。如果你有20,000个线程,那么你将有20,000个人:

RewriteCond %{QUERY_STRING} (^|&)a=forum($|&)
RewriteCond %{QUERY_STRING} (^|&)p=topic($|&)
RewriteCond %{QUERY_STRING} (^|&)oid=18983($|&)
RewriteRule ^$ http://meta.discourse.org/t/permission-inconsistency-and-others/11573 [L,R=301]

另一种方法是将所有请求传递到旧论坛网站上的某些脚本,例如:

RewriteRule ^(.*)$ /redirect.php [L,QSA]

该脚本需要能够读取oid(例如$_GET['oid']),或者在旧数据库中查找线程标题,然后在新数据库中查找该线程标题,然后获取新线程ID,然后将浏览器重定向到新URL。