标签归档:Wordpress

WordPress 在 Nginx 中的 Rewrite 规则

查看wordpress设置的时候看到wordpress支持/year/month/article_title这种形式的链接,早就厌烦了URL后带一堆&xxx=nnn的形式,于是决定改成这种“漂亮地址”。
当然,这种链接需要作URL重写,我的Web Server用的Nginx,于是打开Nginx的设置文件nginx.conf,找到此blog的location,加上了

if (-f $request_filename) {
    break;
}
rewrite ^(.*)$ /index.php?$1 last;

修改Wordpress为固定链接形式后重启Nginx,再打开Blog里的文章,变成“漂亮地址”了。
但是用了没多久,就发现了问题:我在登录后并没有转到wordpress的后台,而是提示说文章不存在。仔细一看URL地址,是/wp-admin/,这是wordpress的管理目录,省略了缺省的index.php,因为我用的”-f”(文件是否存在),于是if判断返回的是false,转到了下边的rewrite,把wp-admin当文章处理了。
于是再次修改Rewrite判断为”-e”(文件或目录是否存在)。

if (-e $request_filename) {
    break;
}
rewrite ^(.*)$ /index.php?$1 last;

重启Nginx,再登录后台就没问题了。