最精简的Nginx配置
server { ???????listen ??????80; ???????server_name ?test.com; ???????charset utf-8; ???????location / { ???????????root ??E:/WWW/test; ???????????index ?index.php; ???????????????????????if (!-e $request_filename) { ???????????????#一定要用(.*)匹配整个URI,包含URI第一个字符反斜杠/ ???????????????#rewrite ^(.*)$ /index.php?s=$1 last; ???????????????rewrite ?^/(.*)index.php(.*)$ ?$1/index.php?s=$2 ?last; ????????????????break; ???????????} ???????} ???????location ~ \.php$ { ???????????root ??????????E:/WWW/test; ???????????fastcgi_pass ??127.0.0.1:9000; ???????????fastcgi_index ?index.php; ???????????fastcgi_param ?SCRIPT_FILENAME ?$document_root$fastcgi_script_name; ???????????include ???????fastcgi_params; ???????} ???????# deny access to .htaccess files, if Apache‘s document root ???????# concurs with nginx‘s one ???????# ???????location ~ /\.ht { ???????????deny ?all; ???????} ???}
关键就是,高级版的:
rewrite ?^/(.*)index.php(.*)$ ?$1/index.php?s=$2 ?last;
1、精简版的:PathInfo模式http://test.com/index.php/home/wendang/index,会报错无法找到模板index.php,其他正常
2、高级版的:貌似这种,兼容模式http://test.com/home/wendang/index,会出现Not Found,其他正常
参考:nginx解决ThinkPHP PATHINFO不支持问题
修改Nginx解决ThinkPHP不支持PathInfo模式
原文地址:https://www.cnblogs.com/sanplit/p/8135708.html