2022-11-14 14:49来源:m.sf1369.com作者:宇宇
可能的原因:
nginx配置有误,没有将请求转发到正确的处理程序(如php-fpm等),转发到一个不存在着的路径
请求已经转发到php处理程序,但php处理程序配置没有找到对应的脚本
php已经处理了脚本,但代码里返回了一个404的状态码
nginx设置的路由不正确也会导致报404错误
如路由配置错误导致url被内部重定向,重定向后的文件不存在
路径有问题,文件不存在,或者是rewrite重定向出错。
错,路径一定有问题
首先,你所谓的路径没问题只是你看到的没问题。
那么很可能:
1. http服务组件,也就是apache或者nginx配置的根目录并不是你所认为的根目录路径
2. 可能开启了错误的伪静态,导致当前地址被重写,那么你所看到的路径就并不是真正的路径了,而重写后的地址并不正确,所以404
暂时想到这两点,但是不管哪种原因,一定是路径不正确。
404的错误,是指找不到对应的文件
你说apache下正常,那可以是你的nginx设置有问题,或者nginx的运行用户权限不足导致
详细你要贴nginx.conf才能进一步分析。
thinkphp有个特殊的地方,nginx要改一下 。找不到文件时重写一下请求。
在nginx.conf文件增加如下配置
if (!-e $request_filename) {
rewrite ^/(.*)index.php(.*)$ $1/index.php?s=$2 last;
break;
}
问题得到解决。
nginx的404返回,一般情况下是因为文件不存在,然后的提示。 但根据你的描述,十次请求的