thinkphp6.0的路由必须要开启pathinfo 但是nginx默认不开启,遂在此分享下我的nginx配置

https://gitee.com/pear-admin/Pear-Admin-Think

询问了下开发者,发现并不是代码的问题 是开源框架thinkphp6.0的问题 thinkphp6.0的路由必须要开启pathinfo,但是nginx(thinkphp官方问中说低版本nginx不开启,但没说哪个版本是低版本,我的1.16.1没有开启,所以如果小伙伴的nginx在这个及以下,就可以使用我下面的配置了) 中默认不开启,遂在此分享下我的nginx配置

  1. server {
  2. listen 80;
  3. server_name think.sanlilin.cn;
  4. root /var/www/html/Pear-Admin-Think/public;
  5. index index.html index.htm index.php;
  6. charset utf-8;
  7. # redirect server error pages to the static page /50x.html
  8. #
  9. error_page 404 /index.php;
  10. error_page 500 502 503 504 /50x.html;
  11. location = /50x.html {
  12. root /usr/share/nginx/html;
  13. }
  14. location / {
  15. #访问路径的文件不存在则重写URL转交给ThinkPHP处理
  16. index index.php;
  17. if (!-e $request_filename) {
  18. rewrite ^(.*)$ /index.php?s=/$1 last;
  19. break;
  20. }
  21. }
  22. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
  23. expires 100d;
  24. }
  25. location ~ .*\.(js|css)?$ {
  26. expires 30d;
  27. }
  28. location ~ \.php(/|$) {
  29. fastcgi_pass 127.0.0.1:9000;
  30. fastcgi_index index.php;
  31. include /etc/nginx/fastcgi_params;
  32. set $fastcgi_script_name2 $fastcgi_script_name;
  33. if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
  34. set $fastcgi_script_name2 $1;
  35. set $path_info $2;
  36. }
  37. fastcgi_param PATH_INFO $path_info;
  38. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2;
  39. fastcgi_param SCRIPT_NAME $fastcgi_script_name2;
  40. }
  41. }

版权声明:本文为sanlilin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sanlilin/p/14239485.html