设置 Nginx 支持 PathInfo 安全无错版

2018-01-07 15:54:53 +08:00
 xiaoyanbot
        #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
		 
		location ~ [^/]\.php(/|$){
		 
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;

            include        fastcgi_params;		
			
			set $path_info "";
			set $real_script_name $fastcgi_script_name;
			if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
				set $real_script_name $1;
				set $path_info $2;
			}
			fastcgi_param PATH_INFO       $path_info;
			fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
			fastcgi_param SCRIPT_NAME     $real_script_name;
				
        }
        
1483 次点击
所在节点    分享发现
2 条回复
zgk
2018-01-07 19:48:18 +08:00
我是这么写的,还可以判断 php 文件是否存在
```
server {
listen 80 default_server;
server_name _;

root /www;
index index.html index.php;

location ~ \.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+?\.php)(.*)$;
set $real_path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
fastcgi_param PATH_INFO $real_path_info;
include fastcgi.conf;
}
}
```
wdd2007
2018-01-08 00:30:39 +08:00
可以解释一下么 @xiaoyanbot

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX