如何在安装的lnmp一键环境包(nginx)启用pathinfo URL模式
来源:互联网 发布:中国网络环境现状 编辑:程序博客网 时间:2024/05/05 04:34
我们在安装lnmp一键安装的时候,一般都没有开启访问pathinfo模式
这种模式在比较多的框架中用到,比如国人的ThinkPHP,还比如C写的Yaf也用到,不支持就比较可惜了。
pathinfo的原理就是将index.php/xxxx/xxx类似的网址当做php来执行,并且需要将xxx/xxx写入到$_SERVER[‘PATH_INFO’]中
这个是lnmp.org(我装的就是这个,所以我以这个为例子)开出来的虚拟机的配置中的一段(vhost/***.conf),修改nginx配置文件也是这样修改
location ~ .*\.(php|php5)?${try_files $uri =404;fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;}
大家明显看到,location中的正则中,写了一个$,悲剧了,表示就此结束(?表示前面的php只匹配一次,这个只是随便提提)
最终,应该如此处理(location哪里也修改了,因为我没有用到php5处理):
if (!-e $request_filename){rewrite ^\/(.*)$ /index.php/$1 last;break;}location ~ \.php{try_files $uri =404;fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;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 SCRIPT_FILENAME $document_root$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info;}
后面的部分处理我是参考的网络上搜索到的文档,带注释版告诉大家
location ~ \.php{try_files $uri =404;fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;set $path_info "";#初始化一个变量set $real_script_name $fastcgi_script_name;#初始化一个变量,并且获取到一个原始赋值if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {#检测如果.php后面还存在/开始参数,将参数处理set $real_script_name $1;#将第一个正则子串匹配到的赋值set $path_info $2;#将第二个正则子串匹配到的赋值}fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;#修改SCRIPT_FILENAME值fastcgi_param SCRIPT_NAME $real_script_name;#修改SCRIPT_NAME值fastcgi_param PATH_INFO $path_info;#修改PATH_INFO值#上述三个赋值都是replace into的模式,这些值都是写在fcgi.conf中}
0 0
- 如何在安装的lnmp一键环境包(nginx)启用pathinfo URL模式
- LNMP一键安装包0.7版配置pathinfo模式
- Thinkphp LNMP一键安装包1.1版配置pathinfo模式
- LNMP一键安装包如何重装Nginx
- nginx环境支持thinkphp的pathinfo模式
- LNMP 配置NGINX 支持THINKPHP PATHINFO模式
- 用lnmp一键安装包搭建nginx+mysql+php生产环境实战
- lnmp一键安装包环境下让nginx支持thinkphp
- lnmp一键安装包搭建的环境,mysql在局域网内连接不上的问题
- nginx支持url的PATHINFO
- Nginx兼容框架的pathinfo模式与URL…
- nginx配置支持pathinfo模式的url访问(原创)
- Nginx兼容框架的pathinfo模式与URL重写
- Nginx兼容框架的pathinfo模式与URL重写
- LNMP一键安装包的搭建
- centos下lnmp一键安装(nginx,mysql,php环境)
- lnmp nginx 开启pathinfo
- 关于lnmp一键安装包的nginx 502 Bad Gateway错误
- __cdecl __stdcall区别
- Type Inference vs. Static/Dynamic Typing
- 第一次参加投融资峰会获奖
- vs2012 项目加载失败解决方法
- 用java的api将数据从HDFS上存到HBASE中
- 如何在安装的lnmp一键环境包(nginx)启用pathinfo URL模式
- LeetCode Status
- Xcode Overview
- 基于Unity的多线程之间的事件派发
- 原码, 反码, 补码 详解
- C++ Primary-预处理程序指令
- Qt 正则表达式
- sqlite3的数据类型详解
- 斯坦福大学开放课程:百度CEO李彦宏演讲 笔记