首先,什么是pathinfo模式呢?
pathinfo是伪静态的一种,我们先解释一下伪静态的概念,伪静态页面是静态URL与动态URL互通的一个桥梁,它是指动态网址通过URL重写的手段去掉其动态参数,使URL静态化,但在实际的网页目录中并没有重写URL。简单来说,伪静态URL就是通过服务器转换伪装文件名或地址,使该页面类似于静态页面,但服务器上没有独立存在的文件,其本质还是动态页面。
例如:一个动态网址http://www.cxzaixian.com/index.php?m=topic&a=detail&tid=82 转为 伪静态模式后为http://www.cxzaixian.com/index.php/topic/detail/tid/82.html。
apache服务器本身是支持pathinfo的,通过简单修改几项配置即可。当配置支持pathinfo后,在php应用程序中,通过_SERVER[‘PATH_INFO’]变量获取pathinfo值为/topic/detail/tid/82.html。 我们就可以很容易通过php逻辑代码来解析出controller文件、action方法、以及剩余的动态参数,进而就可以返回正确的网页响应。
但是我们要说的nginx服务器默认是不支持pathinfo模式访问。实质上就是nginx不会去设置环境变量PATH_INFO 的值,导致php应用程序不能通过_SERVER[‘PAHT_INFO’]来获取path_info, 也就不能解析出对应的动态参数。
好了,终于到本文的正题了,nginx支持pathinfo的配置如下:
1. 找到ngingx的配置文件nginx.conf
在server里的location项,
pathinfo是伪静态的一种,我们先解释一下伪静态的概念,伪静态页面是静态URL与动态URL互通的一个桥梁,它是指动态网址通过URL重写的手段去掉其动态参数,使URL静态化,但在实际的网页目录中并没有重写URL。简单来说,伪静态URL就是通过服务器转换伪装文件名或地址,使该页面类似于静态页面,但服务器上没有独立存在的文件,其本质还是动态页面。
例如:一个动态网址http://www.cxzaixian.com/index.php?m=topic&a=detail&tid=82 转为 伪静态模式后为http://www.cxzaixian.com/index.php/topic/detail/tid/82.html。
apache服务器本身是支持pathinfo的,通过简单修改几项配置即可。当配置支持pathinfo后,在php应用程序中,通过_SERVER[‘PATH_INFO’]变量获取pathinfo值为/topic/detail/tid/82.html。 我们就可以很容易通过php逻辑代码来解析出controller文件、action方法、以及剩余的动态参数,进而就可以返回正确的网页响应。
但是我们要说的nginx服务器默认是不支持pathinfo模式访问。实质上就是nginx不会去设置环境变量PATH_INFO 的值,导致php应用程序不能通过_SERVER[‘PAHT_INFO’]来获取path_info, 也就不能解析出对应的动态参数。
好了,终于到本文的正题了,nginx支持pathinfo的配置如下:
1. 找到ngingx的配置文件nginx.conf
在server里的location项,
版权声明:本文为homeeko原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。