A-A+

nginx下WordPress伪静态化与静态化

2014年04月28日 PHP开源系统 评论 3 条 阅读 253 views 次

在强大的模板、插件的支持下,WordPress从一个博客后台工具,直接升级为CMS内容发布系统,已经是没有任何疑义的一个事实。但是WordPress的文章链接,以xxx.xxx.xxx.xxx/?p=123之类的形式存在,对于网站的SEO来说,确实是不太友好。对于这个问题,其实wordpress本身是有支持的。在wordpress里,链接地址可以是“固定链接”的形式。这种形式,我们很多时候称它为“伪静态化”。不过,跑到其插件库里仔细翻了翻,发现,原来WordPress,也是可以支持真正的静态化的。

要实现wordpress的真实静态化,需要两个前提。

1、首先实现wordpress的伪静态化。

2、安装使用wordpress插件: Really Static

首先是wordpress的伪静态化。wordpress的帮助中,有明确提到它的伪静态化的实现。所谓的伪静态化,就是让wordpress的文章、分类的URL地址看起来像是静态页面,但是实际上是通过web服务器的url重写规则来实现的“假”静态化地址。在其后台管理中,找“设置”“固定连接”。缺省情况下,其设置是“默认”的http://www.abcd.com/?p=123这样的形式。其他可选的形式,有:

日期和名称型 http://www.abcd.cn/index.php/2013/09/17/sample-post/

月份和名称型 http://www.abcd.cn/index.php/2013/09/sample-post/

数字型 http://www.abcd.cn/index.php/archives/123

文章名 http://www.abcd.cn/index.php/sample-post/

这四种链接地址,都需要web服务器的支持。wordpress的建议可以在这个地址找到:

zh-cn:使用固定链接:http://codex.wordpress.org/zh-cn:使用固定链接

上述文章中,明确给出了.htaccess和mod_rewrite下 实现方式。但是用的很多的nginx下,怎样实现,未提及。

随手查了查nginx的重写规则,试写了几段,放在了nginx的配置文件的location区段:

if (-d wp-admin){
break;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

其中第一句是避免后台被重写。经测试可用。加入上述代码后,wordpress的伪静态化就实现了。现在,后面的四种固定链接,都可以生效了。

接下来,搜索Really Static插件,安装。

Really Static插件的安装极其简单。需要注意的是,Really Static的工作原理,其实是遍历了整个网站,然后生成静态页面,写入到本地文件系统。所以,一定要保证really static的工作目录是web用户可写。

至此,wordpress的真静态化实现了。

标签:

3 条留言  访客:3 条  博主:0 条

  1. 梦轩丽人

    感觉WP挺强大的,唯一不友好的地方就是插件库,都是英文,让我们错失很多插件。

  2. 雪言舟语

    很好奇NIG INX是什么

  3. 雪言舟语

    nginx 是什么?

给我留言