如何使用HTTP 301redirect来移动网站和切换链接结构

我目前有我的WordPress的博客(Apache2,Ubuntu的Linux)在例如mysite.com托pipe使用基于ID的链接,例如http://mysite.com/?p=547 。 我有两个目标:

  1. 将我的博客移至mysite.com/blog
  2. 将链接结构更改为/{post-title}而不是/?p={post-id}

移动到新的结构应该很简单 ,就像改变WordPress的设置使用新的永久链接结构一样。

我也想做的是不打破目前链接到我的random(1..100)网站 。 我想使用HTTP 301永久redirect,但我不知道如何通过更改Apache的设置来做到这一点。

第一个问题将是处理redirect到/blog/所有请求。

第二个问题将是处理新的链接结构。 我想我可以很容易地查询MySQL数据库,并生成类似于?p={post-id} > {post-title} ,但我不知道什么语法应该看起来像什么,我需要把它放在哪里。

任何帮助将非常感激。

当你将URLscheme从p = 123更改为post-title时,wordpress会自动将301个访问者从旧的IDurl中更改为正确的URL – 这样就可以完成整理。

接下来,因为你的东西是通过?p = [0-100]达到的,那么你可以很容易地通过PHP来处理这个问题。 我看到有两种解决scheme – 一种比另一种更加优雅。

  1. 根据GET中的pageid编写一些查看Wordpress数据库的代码,并相应地对用户进行编写。

  2. 做1到1 301redirect,类似

 <?php if(isset($_GET['p']) && is_numeric($_GET['p'])) { header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.mydomain.tld/blog/?p=".$_GET['p']); } ?> 

上面的代码是未经testing的,但应该说明这个想法。 上面的代码在很多情况下会导致2 301的 – 但是就search引擎而言,它只应该通过301两次发送它们并更新它们的URL。

书签 – 你不能做太多的事情。