为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的网站配置文件中引用此文件
include wordprss.conf
5、重启nginx,在wordpress中配置插件和链接格式。e.g.:
注意事项:
最好保持为utf-8编码,避免产生乱码问题
步骤2中的提供的代码要特别注意格式,如半角全角,不要出现多余字符(多余空格也不行),任何多余的字符和格式都会造成失败
官方说明档有兴趣也可以观摩一下
https://codex.wordpress.org/Nginx