最精简的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不支持问题