NGINX 开启PATHINFO

本文分享了在使用ThinkPHP框架时遇到的Nginx配置问题及解决方法,特别是如何让Nginx支持ThinkPHP的PATHINFO模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习php,《PHP和MySQL Web开发》零零碎碎的算是看完了,讲了一下基础的东西,对于入门是足够了。前几天开始些项目,是在先前别人的基础上写的,同时有事两个人一起写。完成之后看了看,代码太乱了,包括代码结构和命名规范。遂决定找点着方便的资料。
在网上搜来搜去,找到了篇挺不错的PHP框架(ThinkPHP)教程:http://www.thinkphp.cn/info/155.html 着实还不错,推荐学习PHP的同学看看。
这篇教程的默认环境是wamp的,由于我用的是NGINX,在学习第二篇的时候就遇到了问题。ThinkPHP支持的URL模式:PATHINFO NGINX默认配置是不支持的。本以为是自己ThinkPHP环境配置的问题,后来删了所有的相关文件(我的一贯作风–屡试不爽),重新配置ThinkPHP环境,可是还是同样的报404错误。这样的话只能是Nginx和php配置的问题了。
URL首先是通过Nginx解析的,先从Nginx下手。猜想Nginx是不是不支持ThinkPHP的PATHINFO呢。于是百度一下,便一目了然了。
试了几篇博文的方法,最后终于弄好了。
废话结束
打开Nginx的配置文件nginx.conf
在server中加入一下配置:

location ~ .php {
root d:/ThinkPHP/;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params; 
#pathinfo support 
set $real_script_name $fastcgi_script_name;
set $path_info ””;
if ( $fastcgi_script_name ~ “^(.+?.php)(/.+)$”){
set $real_script_name $1;
set $path_info $2;
} fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info; 
}

需要注意的是那个if判断语句,在(的前后都必须有空格,否则Nginx会报配置语法错误。

参考: http://blog.youkuaiyun.com/bing19880122/article/details/5849139
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值