ThinkPHP 6.0 在 Nginx 下默认页面能访问,其他路由无法访问报错 404 问题
问题描述
访问首页是可以访问的:
定义路由后访问相应页面则报错 404:
问题原因
各种搜索和尝试一番后,终于找到了问题的原因所在,在Nginx低版本中,是不支持PATHINFO的。
解决方法
文档也给出了相应的解决方法,通过在 Nginx.conf
中配置转发规则实现:
问题解决
文件位置:
根据 Nginx
所在目录找到 vhosts
文件夹
如
C:\...\Nginx1.15.11\conf\vhosts
修改文件:
server {
listen 80;
server_name juzi.test;
root "C:/phpstudy_pro/WWW/juziya/public";
location / {
index index.php index.html error/index.html;
...
autoindex off;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
...
include fastcgi_params;
}
}
保存并重启 Nginx
,必须要重启 Nginx
才会生效!
再次访问路由,能成功访问啦!
参考资料
文档:URL访问 · ThinkPHP6.0完全开发手册 · 看云 (kancloud.cn)
文章:tp6 部署后 404
本作品采用《CC 协议》,转载必须注明作者和本文链接
Nginx不管是低版本还是高版本,都要配置rewrite的吧