WordPress标签分页url rewrite重写规则

作者 FarLee 2010年4月11日 0:34:57   ‖浏览(11,619)

下午安装WP-PageNavi插件之后,首页、文章分类页面、文章标签页面、文章归档等索引页面,都可以正确分页显示翻页导航。不过因为WordPress 博客启用了固定链接,分页导航的url链接也是永久固定链接的形式。所以通过url rewrite将带有问号?及数据库查询参数的动态网址静态化以后,有些分页页面链接出现了无法打开,直接跳到404页面的情况。

首页、文章分类页面的分页链接都没有问题;文章标签分页链接,页面翻页到第二页时无法打开,跳转到了404页面。正是由于这个原理,可以用设置404页面的方法来重写Wordpress 的url固定链接。具体可以看这里:如何用404页面实现url重写?不过这里说的是另外一种IIS下实现url rewrite更常见的方法。

因为博客虚拟主机是IIS 6,所以只能用ISAPI 进行url 重写实现网址静态化(固定链接)。在使用ISAPI Rewrite 实现IIS 301重定向这篇文章里也介绍了ISAPI。Windows IIS服务器开启了ISAPI筛选器之后,只要在httpd.ini文件里正确写入url重写规则就可以了。

RewriteRule /archives/(.*) /index\.php\?p=$1
RewriteRule /cat/(.*) /index\.php\?cat=$1
RewriteRule /tag/(.*) /index\.php\?tag=$1
RewriteRule /(far_lee|googlecse|sitemap) /index\.php\?page_id=$1
RewriteRule /feed/?$ /index\.php\?feed=rss2
RewriteRule /page/(.*) /index\.php\?paged=$1

上面六行依次重写了单篇文章页面、文章分类、文章标签页面、独立页面、feed也和翻页分页页面的url。为什么文章分类页面(http://h.farll.com/cat/se/page/2)和首页的分页(http://h.farll.com/page/2)永久固定链接可以使用,文章标签分页页面(http://h.farll.com/tag/wordpress/page/2)却跳转到了404页面?原来还要再加一条针对wordpress标签的分页页面的url rewrite 重写规则,注意一下正则表达式,在 httpd.ini 中添加如下一行:

RewriteRule /tag/([^/]+)/([^/]+)/?([0-9]+)? /index\.php\?tag=$1&paged=$3

博客刚开通文章不多时,设置URL rewrite 重写规则没注意到分页的情况。按照上面的Url rewrite 规则,Wordpress 标签的分页固定链接问题也解决了。

另外按月归档的url 翻页的分页页面链接地址也有问题,最后直接去掉了按日期存档页面的固定链接。想想应该很少有访客会有兴趣按月去阅读某一个博客的,更多的情况下会根据自己感兴趣的内容浏览博客,比如对某个分类或某个标签下的文章感兴趣。再说还有网站地图sitemap页面,想看什么时候的文章都有。


“WordPress标签分页url rewrite重写规则”文章评论(6)

  1. Win主機啊。。

    • 是阿,选了个win IIS 真是人生的一小失误:-)

  2. 博主这几天一直在搞这方面的事嘛~~

  3. 都是技术界的强人

  4. 按照你说的做的,问题还是没有解决啊,帮帮忙啊

  5. 我的WP博客想用分类目录做成导航,但是URL是http://***.com/category/***
    这样合适吗,我现在的导航放的是标签页面 归档页面 是不是很傻逼啊
    希望你能指点下

来说兩句