让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享


Posted in PHP onAugust 08, 2011

网上搜了很多方法都不奏效,研究了一天,发现通过以下的配置可以完美支持 'URL_MODEL' => 2 的情况了

location /project/ { 
index index.php; 
if (!-e $request_filename) { 
rewrite ^/project/(.*)$ /project/index.php/$1 last; 
break; 
} 
} location ~ .+\.php($|/) { 
set $script $uri; 
set $path_info "/"; 
if ($uri ~ "^(.+\.php)(/.+)") { 
set $script $1; 
set $path_info $2; 
} 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php?IF_REWRITE=1; 
include /APMServ/nginx/conf/fastcgi_params; 
fastcgi_param PATH_INFO $path_info; 
fastcgi_param SCRIPT_FILENAME $document_root/$script; 
fastcgi_param SCRIPT_NAME $script; 
}

这里先把project下的请求都转发到index.php来处理,亦即ThinkPHP的单一入口文件;然后把对php文件的请求交给fastcgi来处理,并且添加对PATH_INFO的支持。
重启Nginx以后,http://localhost/project/Index/insert, http://localhost/project/index.php/Index/delete 这样的URL都可以正确访问了。
还有一个地方需要注意的是,Nginx配置文件里 if 和后面的括号之间要有一个空格,不然会报unknown directive错误。
PHP 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
PHP_MySQL教程-第一天
Mar 18 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
PHP取二进制文件头快速判断文件类型的实现代码
Aug 05 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
php Smarty初体验二 获取配置信息
Aug 08 #PHP
php中Smarty模板初体验
Aug 08 #PHP
PHP 防注入函数(格式化数据)
Aug 08 #PHP
PHP中将数组转成XML格式的实现代码
Aug 08 #PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 #PHP
php记录日志的实现代码
Aug 08 #PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 #PHP
You might like
PHP 日常开发小技巧
2009/09/23 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python之os操作方法(详解)
2017/06/15 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python实现ip代理池功能示例
2019/07/05 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Pytorch的mean和std调查实例
2020/01/02 Python
python对Excel的读取的示例代码
2020/02/14 Python
python语言中有算法吗
2020/06/16 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
运动会广播稿300字
2014/01/10 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
党员一帮一活动总结
2014/07/08 职场文书
机关作风建设自查报告
2014/10/22 职场文书
施工安全保证书
2015/05/09 职场文书
风之谷观后感
2015/06/11 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL