WordPress后台在Nginx环境下经常出现404错误

2018年6月4日07:09:53 4 117 views

Nginx因其异步线程特征,更快、更稳定、支持更多并发连接数,使得越来越多的站长放弃Apache改用Nginx做为web服务器。

WordPress后台在Nginx环境下经常出现404错误

 

由于WordPress固定链接是基于Apache的.htaccess实现的,并不能直接支持Nginx。而WordPress官方提供了针对Nginx的配置规则,代码如下:

  1. location / {
  2.     index index.html index.php;
  3.     if (-f $request_filename/index.html){
  4.         rewrite (.*) $1/index.html break;
  5.     }
  6.     if (-f $request_filename/index.php){
  7.         rewrite (.*) $1/index.php;
  8.     }
  9.     if (!-f $request_filename){
  10.         rewrite (.*) /index.php;
  11.     }
  12. }

 

操作WordPress后台为什么会出现404错误

使用这个规则可以实现WordPress固定链接,但是存在一个问题,当多个WordPress网站运行在同一台Nginx服务器上时,后台操作经常会出现404错误。细心的站长观察地址栏可以发现,地址栏中少了wp-admin路径,例如本来应该是 https://www.liwei8090.com/wp-admin/options-permalink.php 却变成了https://www.liwei8090.com/options-permalink.php这个不存在的路径,所以出现404页面。

 

如何解决这个错误

解决这个问题其实很简单,只需要在WordPress的Nginx配置文件中增加一条rewrite规则,完整代码如下:

  1. location / {
  2.     index index.html index.php;
  3.     if (-f $request_filename/index.html){
  4.         rewrite (.*) $1/index.html break;
  5.     }
  6.     if (-f $request_filename/index.php){
  7.         rewrite (.*) $1/index.php;
  8.     }
  9.     if (!-f $request_filename){
  10.         rewrite (.*) /index.php;
  11.     }
  12. }
  13. rewrite /wp-admin$ $scheme://$host$uri/ permanent;

 

更改完配置文件,重启nginx服务即可。

里维斯社

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  3   博主  1

    • avatar 西枫里博客 5

      简单明了~

      • avatar 姜辰 6

        emmmm……很不错,收藏下。不过能解释下那几句是啥意思就好了 。

        • avatar ZAERA博客 2

          可以啊,我看到百度联盟和Google广告,数量不太多

            • avatar Liwei Admin

              @ZAERA博客 :mrgreen: 不多吗,我还担心添加多了大佬们都不来了