秀米云香港服务器

Nginx 开启 PATHINFO

在这之前, 笔者也到搜索引擎上看了几篇关于 Nginx 设置 PATHINFO 的要领, 感受有点乱, 乱的原因主要是由于 Nginx 没有给以像 Apache 那样一个参数即可开启 PATHINFO 的精采支持, 因此呈现了各类 Nginx 下开启 PATHINFO 的解法。

序列号 CPU RAM HDD 带宽 售价(美元) 免费试用
香港服务器1 E5-2620 32G 1T HDD 50M/无限流量 $196.00 立即申请
香港服务器2 E5-2650 32G 1T HDD 50M/无限流量 $256.00 立即申请
香港服务器3 E5-2680 32G 1T HDD 50M/无限流量 $316.00 立即申请
香港服务器4 E5-2690 32G 1T HDD 50M/无限流量 $336.00 立即申请
香港服务器5 E5-2697 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器6 E5-2620*2 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器7 E5-2650*2 32G 1T HDD 50M/无限流量 $436.00 立即申请
香港服务器8 E5-2680*2 32G 1T HDD 50M/无限流量 $476.00 立即申请
香港服务器9 E5-2690*2 32G 1T HDD 50M/无限流量 $556.00 立即申请
香港服务器10 E5-2697*2 32G 1T HDD 50M/无限流量 $596.00 立即申请
香港服务器11 E5-2680v4*2 32G 1T HDD 50M/无限流量 $696.00 立即申请
香港服务器12 E5-2698v4*2 32G 1T HDD 50M/无限流量 $796.00 立即申请

这里提供的是参阅 Nginx 官方文档并团结实测可用后的 PATHINFO 的方案。去除不必需的注释, Nginx 开启 PATHINFO 的 server 部门设置如下:

server{listen80;server_namelocalhost;location/{rootD:/Projects/Demo/thinkphp;#你的TP框架index.php地址目次,记得用/支解路径indexindex.phpindex.htmlindex.htm;}#...#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000#location~^(.+.php)(.*)${rootD:/Projects/Demo/thinkphp;#你的TP框架index.php地址目次,记得用/支解路径fastcgi_split_path_info^(.+.php)(.*)$;fastcgi_paramPATH_INFO$fastcgi_path_info;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}}

这种做法的道理是当请求的会见路径中含有 .php 时, 通过正则表达式结构出 PATHINFO, 并配置到 fastcgi 的参数 PATH_INFO 中。

代码中匹配 PATH_INFO 的正则表达式来历于 Nginx 官方文档中的写法。拜见: http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_split_path_info

PATHINFO 模式是 ThinkPHP 默认的 URL 模式, 因此不需要修改 ThinkPHP 的默认设置即可利用 http://serverName/index.php/模块/节制器/操纵 方法会见。


URL REWRITE 模式

REWRITE 模式也称 URL重写, 可用于埋没 PATHINFO 模式路径中的 index.php, 开启 REWRITE 模式的 Nginx 设置为:

server{listen80;server_namelocalhost;location/{rootD:/Projects/Demo/thinkphp;#你的TP框架index.php地址目次,记得用/支解路径indexindex.phpindex.htmlindex.htm;try_files$uri$uri//index.php?s=$uri;#焦点}#...#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000#location~.php${rootD:/Projects/Demo/thinkphp;#你的TP框架index.php地址目次,记得用/支解路径fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}}

设置完成后修改 ThinkPHP 的 URL 模式为 REWRITE, 编辑设置文件 ThinkPHP/Conf/convention.php 中修改 URL_MODEL 参数值为 2 (REWRITE 模式)即可通过 http://serverName/模块/节制器/操纵 方法会见。

标题:Nginx 下 ThinkPHP URL 的 PATHINFO 与 REWRITE

地址: https://www.yunhk.xyz/26013.html