MENU

搬家后遗症:WordPress后台子项404

May 17, 2017 • 网络技术

刚才写了一篇日志说搬家终于告一段落,结果注销之后再登录就直接懵逼了,重新登录之后点击所有子项都是404页面,都打不开。经过观察后发现是nginx重定向规则的问题,这里写一下吧,避免以后搬家再遇到,再懵逼。

在打不开的懵逼之后,我迅速的淡定下来,经过观察,我发现原来所有子项的链接都是http://www.abc.com/edit.php这种,而通过手动在地址栏修改路径为http://www.abc.com/wp-admin/edit.php后就能打开了。造成这种情况的原因是登陆后,wp-admin后面没有自动加斜杠。也就是说我们登录之后仪表盘的地址是http://www.abc.com/wp-admin,此时就会出问题,正确的情况应该是登陆后仪表盘的地址为http://www.abc.com/wp-admin/,这样就不会出错。

经过搜索,发现在WordPress的官方英文文档里有相关解决办法,英文好的同学可以去看看:https://codex.wordpress.org/Nginx

我呢,读不懂这个,是看的别人遇到这个问题所记录的解决办法,我这边也贴出来吧。

1、登录shell,vim编辑Nginx配置目录(一般是在/usr/local/nginx/conf/)下的"wordpress.conf",当然如果是自己写的conf文件,那就改对应的那个重定向配置文件就好。
vim /usr/local/nginx/conf/wordpress.conf
2、把官方给的那一行加到文件最后面就行了
location /blog/ {
if ($host != 'www.slyar.com' ) {
rewrite ^/(.*)$ http://www.slyar.com/$1 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 (.*) /blog/index.php;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
3、:wq保存重启nginx即可
Ps.其实你要是懒的话,直接用 "echo >>" 追加就行了
echo 'rewrite /wp-admin$ $scheme://$host$uri/ permanent;' >> /usr/local/nginx/conf/wordpress.conf
/etc/init.d/nginx restart

虽然以上方法是完全没问题的,但前面说了我用的是面板,是amh,是有一个AMRewrite程序的,直接编辑规则文件

在规则的最后,加上官方说的这句

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

之后保存好了再过来,注销重新登录就会发现,问题已经解决了^_^

Archives QR Code Tip
QR Code for this page
Tipping QR Code