【问题标题】:Forum migration without ID matches: how to handle 301 redirect?没有 ID 匹配的论坛迁移:如何处理 301 重定向?
【发布时间】:2013-12-27 00:02:16
【问题描述】:

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

我的自定义 php 论坛有一个这样的 url:

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。

有什么想法吗?

【问题讨论】:

    标签: .htaccess redirect seo


    【解决方案1】:

    我不知道 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。

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 1970-01-01
      • 2013-02-27
      • 2016-03-25
      • 2022-01-05
      • 2012-02-06
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多