March 29th, 2007
让 WordPress 的 URL 规范化
Category: WordPress, Author: Nicky, Popularity: 20%
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上面。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.osxcn\.com$ [NC]
RewriteRule ^(.*)$ http://www.osxcn.com/$1 [R=301,L]
</ifmodule>
效果是:只要不是这个地址www.osxcn.com,就把已绑定的二级域名(如blog.osxcn.com和nicky.osxcn.com这些)包括osxcn.com永久重定向到www.osxcn.com。我以前有很多二级域名,现在都不要了,全部重定向到www上面。
相关检测工具
HTTP Status Codes Checker
Search Engine Friendly Redirect Checker
Tags:Permalinks, Plugin, Redirect, SEO, WordPress, WWW.
评论数量(35) | Add Comments
本文网址:http://www.osxcn.com/wordpress/let-wordpress-the-url-standardization.html


从用户体验上来说,这是URL友好~~~嘿嘿
URL规范化无论对用户和bot来说,我相信这都是一个好的事情。
我的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每次得经过两次过滤,虽然对于性能来讲没什么影响,但总是感觉不爽。不知道是不是自己心理方面的缘故?^_^
你的http://www.snsnow.com/和http://www.snsnow.com/blog/放的就是不同的内容啊。
这个写得不错,很受用的教程。
http://www.vipmedia.cn
不错,WP自己写的好象不好用的。
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
你这种探索精神很好,回答你的问题。
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]
试试就知道了。
多谢Nicky,搞定了!
你的Blog已经成为的学习WP最好的地方了,呵呵~
刚从BO-BLOG转过来!
我倒是很想让我的BLOG规范化,不过开启了Permalink以后,按照以前默认的地址能访问日志,按照规范化以后的地址访问却都是404 Not Found… T_T
我明明已经上传了.htaccess并且设置为可写了呀,难道因为是二级域名的关系?
很明显是 rewrite 的问题,你应该先检查一下你的主机是否开启了这个模块?这个和二级域名没有关系。
@Nicky:我也就这个问题问过管理员了,他给我的答复是已经开启了,而且http://bbs.stage1st.com的重定向没问题,真是见鬼了
那就见鬼了。
你尝试一下安装一个全新的 wordpress ,可以排除插件的干扰。
我原来也遇到过这种问题, 后来换服务器转到DH上发现省了好多事, 支持.htaccess并且在面板里面就可以选择你的域名是否保留www.
我在配置好.htaccess后,还是无法实现打开修改后的url。
也许是apache的问题,还在试验……
wordpress中文版好像不支持redirection功能!
有无别的方法可以补救!
中文版不支持?我倒没有研究过,最好的办法就是到 wordpress.org 下载原版,我一直都是这么做的。
well i like it
我找不到.htaccess文件。应该在哪里找到?
你好,现在的WORDPRESS 已经不存在这个问题了,重写后就已经是唯一地址了,
不错,我转载了…
htaccess文件在哪里找到?
好东东..收下了…
URL规范化很有用,学习了
不错,不过 这个好像用robot.txt就可以搞定的吧?看我的链接里面的文章,可以帮我检查一下哦。
文章很好,但站长的网站似乎并没有使用这类插件,测试了站长几个页面,几个地址都是指向一个页面。为何自己不用呢?
WordPress 2.3 以后的版本已经自带了这些功能。
而且用了这个插件,如果是博客的第二个页面或者分类、存档的第二个页面,只要是第二个页面就都会出错。
用软件测试,显示进入了循环301转向,从有后缀“/”转到没有后缀”/”,然后又转过来,反复301转向,页面就打不开了,一直找不到原因。
如果我要把已绑定的二级域名(如blog.osxcn.com和nicky.osxcn.com这些)包括www.osxcn.com永久重定向到osxcn.com
请问Nicky,这段修改.htaccess的代码改如何写呢?
谢谢!
RewriteCond %{HTTP_HOST} !^osxcn.com$ [NC]
RewriteRule ^(.*)$ http://osxcn.com/1 [R=301,L]
很好的教程,但是有时候优化可不要过度了,过度了反而不好,慢慢来。
你好,我的按要求改成如下: 网站 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半天没有反映,打不开. 望有知道 的人指点
URL规范化很有用,学习了
恩,wordpress是我见过的最好的了,目前的群发软件还不能攻克
你好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/都能够访问,我想只通过第二种形式来访问请问我应该怎么做,谢谢。