让 WordPress 的 URL 规范化 - Nicky's blog

March 29th, 2007

让 WordPress 的 URL 规范化

Category: WordPress, Author: Nicky, Popularity: 20%

WordPress
Zac谈到URL网址规范化问题,主要就是说要让网站的URL地址唯一化,不然会造成复制内容而影响搜索引擎结果排名。在WordPress中,如果你启用了Permalinks,那么很不幸你的URL地址就成了2个。如:你的Permalinks结构是archives/123这样,我们就可以通过http://www.domain.com/archives/123和http://www.domain.com/?p=123访问到你的这篇文章,同样,分类和page也存在这样的现象。

前几天介绍了一些301重定向的WordPress插件,能够自动处理这个问题的就是“Permalink Redirect”。它的使用方法很简单,功能却不简单,除了处理上面提到的这个问题,还可以自动让/index.php重定向到根目录下面,和自动在每个目录结尾加上”/”,让你的目录地址也唯一,总之它能做的事情就是让你的WordPress URL地址唯一。另外有一个附加功能,可以选择是否让/feed/定位到你的FeedBurner地址上,相比Feedburner Feed Replacement要差一点,不能把/wp-rss2.php这些地址一起转移了。

它最近的一个版本是07年3月提供的0.6.3版,支持到目前最高的WordPress 2.1.2。但在URL网址规范化中提到的一个重要的问题,就是有没有WWW的问题,它却没有这个功能。如果因为这个问题再安装一个Redirection或者WWW-Redirect插件,就显得有些小提大作了,而且这2个插件都不能完美搞定WWW问题,Matt老大的no-www插件也只能去WWW。我的做法是手动修改.htaccess,把下面一段加在# BEGIN WordPress上面。

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.osxcn\.com$ [NC]
RewriteRule ^(.*)$ http://www.osxcn.com/$1 [R=301,L]
</ifmodule>

效果是:只要不是这个地址www.osxcn.com,就把已绑定的二级域名(如blog.osxcn.comnicky.osxcn.com这些)包括osxcn.com永久重定向到www.osxcn.com。我以前有很多二级域名,现在都不要了,全部重定向到www上面。

相关检测工具
HTTP Status Codes Checker
Search Engine Friendly Redirect Checker

Tags:, , , , , .
评论数量(35) | Add Comments
本文网址:http://www.osxcn.com/wordpress/let-wordpress-the-url-standardization.html



35 Comments so far

» You can leave a response or Trackback .

  1. Gravatar Icon nowa Says:

    从用户体验上来说,这是URL友好~~~嘿嘿

  2. Gravatar Icon Nicky Says:

    URL规范化无论对用户和bot来说,我相信这都是一个好的事情。

  3. Gravatar Icon Freeman Says:

    我的blog是放在blog/目录下,所以.htaccess的设置得改一下,我只是在
    RewriteEngine On和
    RewriteBase /blog/
    之间,加上
    RewriteCond %{HTTP_HOST} !^www\.snsnow\.com$ [NC]
    RewriteRule ^(.*)$ http://www.snsnow.com/blog/1 [R=301,L]
    本来想让主页也来一个转向,只是感觉如果网站根目下再加一个.htaccess,那么blog每次得经过两次过滤,虽然对于性能来讲没什么影响,但总是感觉不爽。不知道是不是自己心理方面的缘故?^_^

  4. Gravatar Icon Nicky Says:

    你的http://www.snsnow.com/和http://www.snsnow.com/blog/放的就是不同的内容啊。

  5. Gravatar Icon y0ungs Says:

    这个写得不错,很受用的教程。

  6. Gravatar Icon vipmedia.cn Says:

    http://www.vipmedia.cn
    不错,WP自己写的好象不好用的。

  7. Gravatar Icon yeahlang Says:

    Nicky,你好,请教个问题,如果我加了

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.osxcn\.com$ [NC]
    RewriteRule ^(.*)$ http://www.osxcn.com/1 [R=301,L]

    原来的

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    还需要吗?

    我把它改称这样,会不会有作用?

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteCond %{HTTP_HOST} !^www\.yeahlang\.com$ [NC]
    RewriteRule ^(.*)$ http://www.yeahlang.com/1 [R=301,L]

    # BEGIN WordPress

  8. Gravatar Icon Nicky Says:

    你这种探索精神很好,回答你的问题。

    1、原来的

    # BEGIN WordPress

    RewriteEngine On
    ……

    这些肯定需要

    2、改成那样也是可以的,而且代码更精简,不过需要这样:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^www\.yeahlang\.com$ [NC]
    RewriteRule ^(.*)$ http://www.yeahlang.com/1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    试试就知道了。

  9. Gravatar Icon yeahlang Says:

    多谢Nicky,搞定了!
    你的Blog已经成为的学习WP最好的地方了,呵呵~
    刚从BO-BLOG转过来!

  10. Gravatar Icon muma Says:

    我倒是很想让我的BLOG规范化,不过开启了Permalink以后,按照以前默认的地址能访问日志,按照规范化以后的地址访问却都是404 Not Found… T_T

    我明明已经上传了.htaccess并且设置为可写了呀,难道因为是二级域名的关系?

  11. Gravatar Icon Nicky Says:

    很明显是 rewrite 的问题,你应该先检查一下你的主机是否开启了这个模块?这个和二级域名没有关系。

  12. Gravatar Icon muma Says:

    @Nicky:我也就这个问题问过管理员了,他给我的答复是已经开启了,而且http://bbs.stage1st.com的重定向没问题,真是见鬼了

  13. Gravatar Icon Nicky Says:

    那就见鬼了。
    你尝试一下安装一个全新的 wordpress ,可以排除插件的干扰。

  14. Gravatar Icon 北极冰仔 Says:

    我原来也遇到过这种问题, 后来换服务器转到DH上发现省了好多事, 支持.htaccess并且在面板里面就可以选择你的域名是否保留www.

  15. Gravatar Icon Bourne Says:

    我在配置好.htaccess后,还是无法实现打开修改后的url。

    也许是apache的问题,还在试验……

  16. Gravatar Icon Blank Says:

    wordpress中文版好像不支持redirection功能!

    有无别的方法可以补救!

  17. Gravatar Icon Nicky Says:

    中文版不支持?我倒没有研究过,最好的办法就是到 wordpress.org 下载原版,我一直都是这么做的。

  18. Gravatar Icon hottosee Says:

    well i like it

  19. Gravatar Icon shaoqing Says:

    我找不到.htaccess文件。应该在哪里找到?

  20. Gravatar Icon semon Says:

    你好,现在的WORDPRESS 已经不存在这个问题了,重写后就已经是唯一地址了,

  21. Gravatar Icon Beach Says:

    不错,我转载了…

  22. Gravatar Icon forexask.com Says:

    htaccess文件在哪里找到?

  23. Gravatar Icon rexsky Says:

    好东东..收下了…

  24. Gravatar Icon p268 Says:

    URL规范化很有用,学习了

  25. Gravatar Icon 飞龙在天 Says:

    不错,不过 这个好像用robot.txt就可以搞定的吧?看我的链接里面的文章,可以帮我检查一下哦。

  26. Gravatar Icon 小天博客 Says:

    文章很好,但站长的网站似乎并没有使用这类插件,测试了站长几个页面,几个地址都是指向一个页面。为何自己不用呢?

  27. Gravatar Icon Nicky Says:

    WordPress 2.3 以后的版本已经自带了这些功能。

  28. Gravatar Icon 小天博客 Says:

    而且用了这个插件,如果是博客的第二个页面或者分类、存档的第二个页面,只要是第二个页面就都会出错。
    用软件测试,显示进入了循环301转向,从有后缀“/”转到没有后缀”/”,然后又转过来,反复301转向,页面就打不开了,一直找不到原因。

  29. Gravatar Icon 念漠 Says:

    如果我要把已绑定的二级域名(如blog.osxcn.com和nicky.osxcn.com这些)包括www.osxcn.com永久重定向到osxcn.com
    请问Nicky,这段修改.htaccess的代码改如何写呢?
    谢谢!

  30. Gravatar Icon Nicky Says:

    RewriteCond %{HTTP_HOST} !^osxcn.com$ [NC]
    RewriteRule ^(.*)$ http://osxcn.com/1 [R=301,L]

  31. Gravatar Icon Beautiful Skin Says:

    很好的教程,但是有时候优化可不要过度了,过度了反而不好,慢慢来。

  32. Gravatar Icon nevst Says:

    你好,我的按要求改成如下: 网站 http://www.playgaia.cn
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^www\.playgaia.cn\.cn$ [NC]
    RewriteRule ^(.*)$ http://www.playgaia.cn/1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress
    用firefox 打开时出错:
    此页面重定向不正确
    Firefox 检测到该服务器正在将此地址的请求循环重定向。
    * 此问题可能是因为禁用或拒绝 Cookie 导致。

    用ie7.0半天没有反映,打不开. 望有知道 的人指点

  33. Gravatar Icon robin Says:

    URL规范化很有用,学习了

  34. Gravatar Icon 完美世界私服 Says:

    恩,wordpress是我见过的最好的了,目前的群发软件还不能攻克

  35. Gravatar Icon single Says:

    你好nicky拜读你很多精彩文章,在这个过程中我想请教您一个问题。
    应为我的主机不支持重定向,所以我在permalink里选择了Day and name http://www.singlestudio.cn/blog/index.php/2008/05/02/sample-post/ 这个方式。但是现在通过http://www.singlestudio.cn/blog/?p=24
    和http://www.singlestudio.cn/blog/index.php/2008/04/26/blog-marksystem/都能够访问,我想只通过第二种形式来访问请问我应该怎么做,谢谢。

46 Trackbacks/Pingbacks

leave a reply