nginx上万能的wordpress伪静态配置方案

为wordpress添加伪静态功能,可以让wordpress更快更容易被搜索引擎检索提高网站访问量和访问体验。
nginx是高性能的服务器软件,但是目前网络上流传的wordpress在nginx伪静态规则问题非常多,基本使用的都是以下伪静态代码
location / {
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;
}
}

以上这段代码在很多环境中会出错,e.g.进入后台后所有功能都会被自动去除/wp-admin/目录。

现在本人提供提供100%完美兼容的nginx伪静态规则

1、使用文本编辑器新建一文本文件

2、在文件中输入以下内容:
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;

if (!-e $request_filename) {

rewrite ^.+?(/wp-.*) $1 last;

rewrite ^.+?(/.*\.php)$ $1 last;

rewrite ^ /index.php last;

}

3、将文件保存为wordpress.conf,注意是utf-8文件

4、在nginx的网站配置文件中引用此文件,
e.g.:include wordprss.conf

5、重启nginx,在wordpress中配置插件和链接格式。
e.g.:
20160621082015

注意事项:
最好保持为utf-8编码,避免产生乱码问题
步骤2中的提供的代码要特别注意格式,如半角全角,不要出现多余字符(多余空格也不行),任何多余的字符和格式都会造成失败

官方说明档有兴趣也可以观摩一下
https://codex.wordpress.org/Nginx

已有2条评论 发表评论

  1. JavasBoy /
    Firefox 47.0 Windows 7 x64 Edition

    俺一直用着这个规则,没想到你还在更新博客。

    说话啥时候上https?

    1. 西崽猪猪 / 本文作者
      UC Browser 8.0 Windows 10 x64 Edition

      对于https没兴趣,我需要CDN,不能上https

发表评论