wordpress修改固定链接后301重定向

技术 2012 次围观 11 次吐槽

wordpress

  一开始建站的时候,对于wordpress的固定链接随意设置,等到明白过来的时候,发现已经更新了很多文章了。如果这时候再修改固定链接的话,搜索引擎已经收录了不少文章,那些链接就成了死链,影响网站收录和印象。这时候就要做一下网站链接的301重定向了。
  301重定向(301 redirect)是指网址的永久性转移(Permanently Moved),当网站在搜索引擎索引库中的网址发生改变时,搜索引擎并不能及时改变索引库中的网址。网站管理员通过对网址的301重定向转移,可以避免损失来自搜索引擎的用户。更重要的是,通过301重定向转换,URL的权重、Google PR值都能够不受影响地传递。因此301重定向也是网页更改地址后对搜索引擎非常友好的一种方法。
  要实现网站的301重定向,有很多方法,新手推荐使用redirection插件,简单友好,自带中文设置界面。不过这里介绍的是通过修改.htaccess文件进行301重定向,从而实现WordPress固定链接形式的更改。

  1、什么是.htaccess
  根据维基百科,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

  2、.htaccess中用到的正则表达式
  和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求。

^ –> 匹配字符串的开始
$ –> 匹配字符串的结束
^$ –> 可以用于确定字符串,即可以用于确定起点或终点。例如:^$ —— 空字符串
\s –> 匹配任意的空白符
\w –> 匹配字母或数字或下划线或汉字
\b –> 是正则表达式规定的一个特殊代码代表着单词的开头或结尾,也就是单词的分界处
\d –> 匹配一位数字
\W (大写) –> 匹配任意不是字母,数字,下划线,汉字的字符
\S (大写) –> 匹配任意不是空白符的字符
\D (大写) –> 匹配任意非数字的字符
\B (大写) –> 匹配不是单词开头或结束的位置
“ . ” –> 匹配除了换行符以外的任意字符
“ * ” –> 它代表的不是字符,也不是位置,而是数量——它指定 * 前边的内容可以连续重复使用任意次以使整个表达式得到匹配。“ * ”连在一起就意味着任意数量的不包含换行的字符
“ + ” –> 是和“ * ”类似的元字符,不同的是 * 匹配重复任意次(可能是0次),而 + 则匹配重复1次或更多次。
“ ? ” –> 重复零次或一次
“ – ” –> 不是元字符,只匹配它本身,即连字符(减号)

参照更多:.htaccess技巧: URL重写(Rewrite)与重定向(Redirect)

  3、举例说明
  这里举我自己的例子,一开始我的链接是/archives/%post_id%.html,我想简化成/%post_id%.html,也就是说,需要将中间的/archives去掉。
  RedirectMatch 301 ^/archives/(.+)$ /$1
  说明:^可以理解为语句正式开始,/archives是原来的链接,(.+)表示重复一次或者多次的任意字符,$可以理解为老链接和新链接之间的分割符。再空一格,表示新链接的开始。$1表示/archives之后的全部变量原封不动继承。

  4、注意事项
  wordpress会自动修改.htaccess文件中# BEGIN WordPress和# END WordPress之间的内容,即使你并没有修改过固定连接。只要点击了“固定连接”,.htaccess文件中# BEGIN WordPress和# END WordPress之间的内容就会被更改,自动还原。
  因此,如果你要添加自己的语句而不被替换的话,将自定义的匹配规则写在.htaccess中的# BEGIN WordPress和# END WordPress之外即可。

  参考链接:
  http://www.mrbie.com/wordpress-htaccess-301-redirection.html
  http://www.caier.org/301-redirect.html

转载请注明:秋水逸冰 » wordpress修改固定链接后301重定向

发表评论
取消评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
表情

已有评论 (11)

  1. /%postname%/ 能改成 /p/%postname%.html 更好,方便管理
    Musk4年前 (2013-07-15)回复
    • 因为已经被搜索引擎收录了,所以改完固定链接一定要做好301跳转。否则会失去权重。
      秋水逸冰4年前 (2013-07-16)回复
      • Permalinks Moved Permanently 插件是不是301重定向
        Musk4年前 (2013-07-16)回复
        • 这个插件已经久未更新了,建议不要使用。如果你的web服务器用的是Apache,那么修改.htaccess文件就能搞定301重定向。
          秋水逸冰4年前 (2013-07-16)回复
  2. /%postname%/ 改成 /%postname%.html 怎么改.htaccess 博客文章2000+ 了, 不敢乱改 文章多了,vps压力大,准备静态化
    Musk4年前 (2013-07-15)回复
    • 加个.html后缀,这个是伪静态,改完后无需改.htaccess的。静态化推荐一款插件WP Super Cache
      秋水逸冰4年前 (2013-07-16)回复
  3. 你好,这个能不能把Wp的文章url加一个后缀名 .html。 然后做301重定向呢?
    Era4年前 (2013-06-01)回复
    • 直接在固定链接里设置,在后面加个.html即可。无需301跳转。实际上是属于伪静态。
      秋水逸冰4年前 (2013-06-02)回复
      • 呵呵,直接加个html,那么以前收录的就要废了。 不过规则已搞定。
        Era4年前 (2013-06-02)回复
  4. VERY GOOD,很好很强大啊。htaccess还可以做静态地址,做网站多学一点没错。知道就是,了解。学过就是,熟练。做过就是,精通。
    软件分享4年前 (2013-04-28)回复