Nginx下WordPress后台页面404的解决办法

表白驿站是基于LNMP环境+WordPress搭建的,所以这两年来一直有一个问题让我懒得去解决,每次登陆后台点击左边的导航菜单,都会造成404,也就是链接上少了wp-admin/,每次都需要手动加上去,这个问题其实是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;
         }
}

这个规则是不完整的,实际上漏了一条:

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

完整的规则如下:

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;
         }
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

完成之后重启nginx就好了。