代码之家  ›  专栏  ›  技术社区  ›  germainelol

导入到WordPress而不丢失页面排名和永久链接

  •  0
  • germainelol  · 技术社区  · 9 年前

    我已经将我所有的博客文章从一个不同的CMS导入到一个本地的WordPress设置中,以便在上线之前进行测试。以下是包含旧CMS帖子的XML文件的布局:

    <PublishingArticles>
        <ID></ID>
        <CategoryID></CategoryID>
        <AllowComments></AllowComments>
        <AllowPingback></AllowPingback>
        <Body></Body>
        <Categories></Categories>
        <ContentFormat></ContentFormat>
        <IsAppoved></IsAppoved>
        <IsPrivate></IsPrivate>
        <IsPublished></IsPublished>
        <Language></Language>
        <LastModified></LastModified>
        <ParentID></ParentID>
        <PermaLink>/home/year/month/day/id/blog-post-name.html</PermaLink>
        <Pos></Pos>
        <Posted></Posted>
        <Ratings></Ratings>
        <Slug></Slug>
        <Title></Title>
        <TotalReads></TotalReads>
        <TotalComments></TotalComments>
        <TotalVotes></TotalVotes>
        <UserName></UserName>
        <Version></Version>
    </PublishingArticles>
    

    到目前为止,我在导入帖子时没有遇到任何问题,所以我的下一步是确保旧的URL重定向到新的URL。

    我使用WPAllImport导入帖子,但没有选项保存永久链接以进行重定向。我现在已经安装了重定向插件,但设置似乎不能满足我的要求。

    我想将所有旧的永久链接重定向到新位置。有人对如何处理这件事有什么想法吗?我试过四处寻找重定向,但我不确定这是否是正确的方法。

    我目前的想法是,我应该从XML文件中提取所有永久链接,并告诉重定向插件应用这些链接,因为ID也将从XML文件导入并在导入到WordPress时使用。然而,我不知道如何大规模地做到这一点,因为有1700个帖子。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Nadeem Khan    9 年前

    有多种方法可以做到这一点:

    • 您可以通过访问 Settings > Permalinks 这样,WordPress将自动生成与旧URL类似的新URL,您甚至不需要进行重定向。
    • 您可以通过.htaccess文件将所有旧URL重定向到新URL,如下所示(正如下面的聊天中所讨论的,新URL的结构与旧URL完全相同):

    旧域URL: http://old-domain.com/home/year/month/day/id/blog-post-name.html

    新建域URL: http://new-domain.com/home/year/month/day/id/blog-post-name.html

    将此内容添加到.htaccess文件中,以将所有旧URL重定向到新URL,并保持不变:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    # Redirects Entire Old Domain URLs to New Domain Unchanged
    RewriteCond %{HTTP_HOST} ^old-domain.com$ [OR]    
    RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,L]
    </IfModule>