冰古blog » wordpress, 站长相关 » 2013 » 12 » 19 » 修复lnmp一键安装包WordPress伪静态错误

修复lnmp一键安装包WordPress伪静态错误

用过的lnmp一键安装包有二,之前用的猫叉lnmp和现在用的lnmp.org。两家的WordPress伪静态设置都有同一个问题,就是进入wp-admin后台输入的网址为不带最后的斜杠时(如:http://bingu.net/wp-admin),则进入后台后点击左边的导航栏将不能进入正确的网址(如,留言编辑页面正确网址应该为:http://bingu.net/wp-admin/edit-comments.php,这时点击进入的却是:http://bingu.net/edit-comments.php),得到的将是闪亮的404页面。
wordpress-nginx-rewrite-conf

解决的方法很简单,只需在WordPress的伪静态配置文件中添加一条判断,判断如果网址到达页面为目录,且该网址最后的字符不为斜杠“/”,则301跳转到在该网址最后添加斜杠后的网址。代码为:

if (-d $request_filename){
    rewrite ^/(.*)([^/])$ /$1$2/ permanent;
}

附猫叉lnmp和lnmp.org wordpress.conf的修改版:

# 猫叉lnmp wordpress.conf修改版
# /usr/local/nginx/conf/wordpress.conf
if (-d $request_filename){
    rewrite ^/(.*)([^/])$ /$1$2/ permanent;
}
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;
}
# lnmp.org的wordpress.conf修改版
# /usr/local/nginx/conf/wordpress.conf
location / {
    if (-d $request_filename){
        rewrite ^/(.*)([^/])$ /$1$2/ permanent;
    }
    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;
    }
}

6 Responses to “修复lnmp一键安装包WordPress伪静态错误”

  1. 阿里书籍 says:

    很好的技术博客

  2. 小谈博客 says:

    以前文章的图片都挂了啊

  3. 小谈博客 says:

    在豆瓣小组的wordpress上找到你的,你的网站很有特色,我已经添加友情链接了!有空多多互访!

  4. Cat. says:

    你怎么知道有人叫我做猫叉!!!
    自用的lnmp早段时间弄好,没放出来~

Leave a Reply