使用更简单的方法,fastcgi模块自带了一个fastcgi_split_path_info指令专门用来解决此类问题的,该指令会根据给定的正则表达式来分隔URL,从而提取出脚本名和path info信息,使用这个指令可以避免使用if语句,配置更简单。
另外判断文件是否存在也有更简单的方法,使用try_files指令即可。
- server {
- ...
- location / {
- index index.htm index.html index.php;
- #如果文件不存在则尝试TP解析
- try_files $uri /index.php$uri;
- }
- location ~ .+.php($|/) {
- root /var/www/html/website;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
-
- #设置PATH_INFO,注意fastcgi_split_path_info已经自动改写了fastcgi_script_name变量,
- #后面不需要再改写SCRIPT_FILENAME,SCRIPT_NAME环境变量,所以必须在加载fastcgi.conf之前设置
- fastcgi_split_path_info ^(.+.php)(/.*)$;
- fastcgi_param PATH_INFO $fastcgi_path_info;
-
- #加载Nginx默认"服务器环境变量"配置
- include fastcgi.conf;
- }
- }
最后
以上就是飞快豆芽最近收集整理的关于TP环境配置之 lnmp 配置thinkphp路由重写的代码的全部内容,更多相关TP环境配置之内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复