关于Nginx不支持pathinfo问题解决
在nginx下是不支持pathinfo的,但是apache支持pathinfo。
pathinfo是什么?
首先我们在nginx的html目录下新键1.php文件,打印$_SERVER
<?php
echo "<pre>";
print_r($_SERVER);
尝试在地址栏输入如下参数
结果返回404
同样的代码在apache下测试
没有报错 并且页面多了PATH_INFO的字段 值为 url地址后面的参数 a/b/c 这就是pathinfo
一些框架中他的地址栏格式为 index.php/Home/Index/goods/1…这种格式在apache中可以正常解析,但在nginx中是不支持的,也就是你的框架项目直接拿到nginx上是跑不起的。
解决办法如下
//基础配置
location ~ \.php$ { root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /$DOCUMENT_ROOT$fastcgi_script_name;include fastcgi_params;
}
//修改后的配置
location ~ \.php(.*)$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /$DOCUMENT_ROOT$fastcgi_script_name;fastcgi_param PATH_INFO $1;include fastcgi_params;}
通过正则反向引用将.php后面的参数传递给pathinfo
浏览器测试传入参数 1.php/a/b
页面生成PATH_INFO字段
此时解决Nginx不支持pathinfo的问题。
但有些框架他的地址栏格式是这样的
域名+a/b/c
,域名后面没有index.php
如dian.com/show/eic
这时候要使你的项目在nginx上运行就要通过url地址重写解决问题
location / {root html/daikuan/public;index index.php index.html ;//添加url重写if ( !-e $request_filename) {rewrite (.*)$ /index.php/$1;}
但是这种方式一直导致
500 Internal Server Error
不知道什么原因,不过在nginx中还可以通过try_files
解决上述问题
location / {root html/daikuan/public;index index.php index.html ;//tryfiletry_files $uri /index.php?$uri;}
关于Nginx不支持pathinfo问题解决相关推荐
- nginx不支持pathinfo的原因以及解决办法
nginx.cn nginx下支持PATH_INFO详解 – 运维与架构 mood 要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathi ...
- phpinfo查看可以解析的后缀_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...
- apache http server 停止工作_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...
- 配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...
- 解决nginx不支持pathinfo Thinkphp命名空间问题
1.这是我Ubuntu14.4配置文件 server { listen 9989 default_server; # SSL configuration # # listen ...
- Nginx+ThinkPHP不支持PathInfo的解决办法
nginx 不支持pathinfo, 你可以自己配置一个pathinfo变量, 会有安全漏洞,你又要修复, 很麻烦. nginx 最好是不要用pathinfo, thinkphp可以在不支持pathi ...
- 转载:配置nginx支持pathinfo功能
原文地址:http://linuxguest.blog.51cto.com/195664/694319 nginx模式不支持pathinfo模式,类似info.php/hello形式的url会被提示找 ...
- java pathinfo,nginx下支持PATH_INFO的方法实例详解
本文实例分析了nginx下支持PATH_INFO的方法.分享给大家供大家参考,具体如下: 要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pa ...
- phpshe b2c商城系统配置nginx支持pathinfo和rewrite的写法
找到/usr/local/webserver/nginx/conf/nginx.conf文件(环境配置不一样,路径也可能不一样) 并在server {...省略掉的代码}中添加如下代码即可(如果程序放 ...
最新文章
- 为你的水晶报表装载本地图片
- 四代 DNA 测序技术简述*
- C#学习系列之泛型类
- Linux 软件安装与卸载之获取程序包的途径
- bzoj 3365: [Usaco2004 Feb]Distance Statistics 路程统计【容斥原理+点分治】
- TensorFlow 2.0 - TFRecord存储数据集、@tf.function图执行模式、tf.TensorArray、tf.config分配GPU
- 【逻辑与计算理论】Lambda 演算的类型与其 Lambda 演算建模
- GPU并行计算OpenCL(1)——helloworld
- 【Linux】解决Linux上解压jdk报错gzip: stdin: not in gzip format
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
- 【PAT乙】1080 MOOC期终成绩 (25分)
- Linux修行学习,网站持更
- linux未找到telnet命令
- PC端 流光溢彩 Arduino
- PS白底证件照换蓝底背景,头发边缘精细处理
- 在哪里设置自动锁定计算机,教你电脑锁屏怎么设置,让电脑自动锁屏
- 入职阿里巴巴,成为年薪百万阿里P7高级架构师需要必备哪些技术栈,带你来观望一下
- C++:vector的push_back()与emplace_back()
- animal farm 第一章阅读笔记
- 王权游戏中“帽子王”成就的获取