前言:最近把服务器从apache改为了nginx,结果导致edusoho程序无法自动跳转登陆了
为了这个bug,检查了好几个小时,调试跟踪发现,如果判断用户没登陆,edusoho会报一个404错误,并且返回错误代码:4040101
,JS判断是这个错误代码,就会跳出登陆弹窗、或者引导到微信授权登陆。
但是在nginx环境下,不返回正确的错误代码,返回了code:0
经过检查发现,宝塔对于nginx的配置多了一句
error_page 404 /404.html;
因为edusoho是报404,然后再进行下边的逻辑,但是这里捕获了404,就直接跳转到了404.html,但是由于服务器没有404.html这个文件,然后又报了个404出来,结果就返回了错误的错误信息
解决办法:
把error_page前边加个#
,注释掉这2句就OK了