2009/11/10

更改永久链接(Permalink)

终于痛下决心改变原有的永久链接结构了,下面所说的都是wp环境下的问题,其他环境的博客请不要对号入座。由于每改动一次链接对网站流量来说就像是一次地震,虽然有很好的重定向,但是也不能完全解决问题,所以做出这样的决定也是无奈之举,趁现在流量还不算太大的时候改变要比流量大了之后再修改要好很多。

一、原因分析

由于之前为了链接优化,听从了他人的建议,将永久链接结构改成了/archives/%postname%.html这样的形式,这种形式的好处是,在搜索引擎里就能抓取到连接中的文字,这对于搜索优化效果应该是最好的,而从google搜索一下试试就知道,事实也正是如此,链接中的字很明显的变成了搜索关键词,并加以粗体显示:

gudinglianjie

而百度搜索不能识别这种链接中的中文,中文部分显示乱码,可以自行测试。

在链接地址的显示上也有所差异:

以“做啥网采纳了我的建议”这篇文章为例,在firefox,chrome下显示:

http://www.keege.com/archives/做啥网采纳了我的建议.html

在IE下实现则是这样的:

http://www.keege.com/archives/%e5%81%9a%e5%95%a5%e7%bd%91%e9%87%87%e7%ba%b3%e4%ba%86%e6%88%91%e7%9a%84%e5%bb%ba%e8%ae%ae.html

在多数情况下拷贝的链接都是第二种形式,这种形式的链接将中文文字全部转化成编码,所以使得链接变得很长,使用起来不方便,而前一种形式在有些网站是支持的,但是也不完美,经常由于中英文混搭导致链接不完整,例如,在做啥上就将这篇文章的链接变成了这样:

http://zuosa.net/qeip.u做啥网采纳了我的建议.html

只将前面英文部分转换成了链接,而中文部分则被忽略,这样导致的结果是点击链接之后打开的是http://www.keege.com/archives/,到达不了该篇文章,导致404错误。

二、解决问题

将链接结构调整为/archives/%post_id%.html这种短结构,上面那篇文章的链接变成了http://www.keege.com/archives/812.html

简单了很多,在各种浏览器下均如此现实,在链接传递过程中也不会出现被截断的现象。

唯一的缺点是无法实现上文中提到的搜索引擎链接优化效果,不过好在现在的搜索引擎技术有了长足的进步,这些小问题已经不是阻碍搜索引擎收录的门槛。

三、重定向

接下来所要做的就是重定向,否则那些搜索引擎或者各大网站收录的你的文章链接都将失效,这将会被搜索引擎认为很不友好,会降权或者惩罚,我试过.htaccess和Dean's Permalinks Migration插件,均无法完美完成这个任务,如果你的%postname%是英文的连接结构那么Dean's Permalinks Migration插件则是首选,简单快捷的实现重定向,含中文的则无法实现。

今天花了一些时间终于找到了一个插件可以完美实现包含中文的链接结构%postname%到%post_id%的重定向,该插件为Permalink Redirect,目前2.04版本,激活该插件后在Old Permalink Structures:区域填上以前的链接结构(/archives/%postname%.html)保存即可,这将对《放羊博客》在用户阅读体验上有所提升。该插件还能完美重定向你的feed和hostname,这里不再详细介绍。

目前测试没有发现问题,如有任何异常,欢迎报告。

PS:昨天查看主机的发现,一段时间没上来看我的1G空间用掉了700M多,对于只装几个wp博客的服务器实在不正常,即使我装了很多插件和主题用于测试,但也不至于700M之多,并且这个数字还在增加,打开cpanel仔细排查之后发现error_log文件就占到了600M左右,着实把我吓着了,由此可见服务器稳定和网站优化是多么重要。

55 条评论:

  1. 看了几篇文,博主涉猎范围广,眼光很独到啊

    回复删除
  2. 这个就是Z-Blog的默认命名规则嘛,我认为不好。文件名一定要用有意义的英文(或汉语拼音)来生成,即尽可能的用包含关键字的英文名(或汉语拼音)来命名文件名,这样,可以扩大被搜索的范围,亲身体验啊,你从SE来的流量肯定会增加很多的。

    回复删除
  3. 说的很对啊,目前这世界还是别在地址中用中文了

    回复删除
  4. 过奖了,还要多学习呢

    回复删除
  5. 这个我知道,每篇文章都要手动添加很不方便,用插件的话也是机械的将中文翻译过来,也不好,不如一次性改成这样一了百了,虽然会损失一部分流量

    回复删除
  6. 我之前点阅你的博客,在订阅器里打不开了
    原来是你改变了永久链接了

    回复删除
  7. 嗯,目前国内很多网站对含中文的链接支持不好

    回复删除
  8. 打不开?我做了重定向了呀,难道有问题,具体哪篇文章?

    回复删除
  9. 你还真能折腾啊

    回复删除
  10. 我跟你一样能折腾 呵呵

    回复删除
  11. 唉,没办法,实在受不了了

    回复删除
  12. 我的博客正好刚刚从Z-BLOG转到WordPress,需要调整相应的链接,这篇恰是及时雨,学习啦!!

    回复删除
  13. 我现在的链接方式也不满意,但是现在忍着吧,

    回复删除
  14. 我就是用postname格式,不过我都会自定义一个英文名称

    回复删除
  15. 看到了,一看到那篇hello world就知道了

    回复删除
  16. archives好像是会好一些,这也是wp后台默认的,没测试过是否有区别

    回复删除
  17. 这样对于中文博客会比较麻烦,所以放弃了。如果是英文博客的话建议还是保留

    回复删除
  18. 要改最好趁流量比较小的时候,这样对搜索的影响会比较小

    回复删除
  19. 现在发现还有个问题,之前分类和标签的链接无法完全转过来。。。

    回复删除
  20. 就因为这个单词是有准确意义的,我曾经试过在另外一个博客上用meirong这个目录做固定链接分类,结果你猜怎样,一个空博客,没有任何文章,GG广告直接显示美容相关的广告

    回复删除
  21. 这可能是个比较痛苦的事情,到网上搜素一下看有没有好的方法来实现

    回复删除
  22. 现在可以了,当时打开的是地址是Feedsky的,跳转不掉

    回复删除
  23. 也有可能是feedsky的问题,经常导致无法跳转

    回复删除
  24. 数字更方便,英文或汉语拼音更有意义~

    回复删除
  25. 我用的是Z-blog 不过也受益匪浅。。
    至于那个600多M的错误日志,确实有些惊人!

    回复删除
  26. 总结的蛮不错的

    回复删除
  27. 文章多了,难得改了。

    回复删除
  28. 链接优化确实很重要啊

    回复删除
  29. 我感觉用什么链接无所谓,毕竟通过搜索来博客的人不多,再说了,写博客的目的不是为了获得多少多少ip,目的是交流,即便是链接全改了,喜欢你博客的人照样会来,不喜欢的不改也不会来

    回复删除
  30. 我一直是这样的。

    回复删除
  31. 百度很喜欢我的汉字的标签页,也是乱码~

    回复删除
  32. 这正是我想的,不想链接地址占到好几行,这样看得人很累,也不方便复制粘贴

    回复删除
  33. 呵呵,是的,百度虽然现实乱码,但是估计他们自己的机器人还是能认识的

    回复删除
  34. 可以在本地搭建个WP测试主题+插件,那样就爽

    回复删除
  35. 我用xampplite搭建的,很方便

    回复删除
  36. 博客大全已链接放羊博客超过两个月,如果你支持博客大全的话,帮忙做个链接。

    回复删除
  37. 用静态地址模式是便于收录的
    目录也越短越好,权重高点

    回复删除
  38. 感觉好长时间没更新了呵呵!!!!

    回复删除
  39. 恩,只能说,各有个的好处吧!

    回复删除
  40. 如果我用的是permalink的别名功能呢?原来GOOGLE中收录的是我的ID.HTML的格式,现在想变成别名.html,怎么设置.htaccess呢?

    回复删除
  41. 静态的地址对访客和SE都很有好处...

    回复删除
  42. 不知道你说的别名是什么意思

    回复删除
  43. 谢谢分享哦,最近网站的活特多~!~

    回复删除
  44. 是嘛,恭喜你啊

    回复删除
  45. 地址栏中出现汉字总是不太好的。

    回复删除
  46. 是的,目前很多地方还解决不了这个问题

    回复删除
  47. error还是每2M就新生成一个log文件吧,否则太大了都没法看

    回复删除
  48. 博客目录在blog/下如何重定向?收录的文章都无法重定向,不带blog的全部重定向跳转了!

    回复删除