`
isno
  • 浏览: 14979 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

让nginx 支持PATH_INFO

    博客分类:
  • PHP
阅读更多
很多PHP框架默认使用PHP的PATH_INFO 来进行URL重写
当用Nginx作为http服务器的时候,就出现问题了,愿意是Nginx为定义PATH_INFO这个变量,我们想要使用PHP框架的PATH_INFO重写时候,必须定义这个变量

代码比较简单
 location ~ \.php($|/) {
		root	   /www/test;

		set $script     $uri;
		set $path_info  "";

		if ($uri ~ "^(.+?\.php)(/.*)$") {
		    set $script     $1;
		    set $path_info  $2;
		}

		fastcgi_index	index.php;
		fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_param   PATH_INFO       $path_info;
		fastcgi_pass    unix:/tmp/php-fpm.sock;
		include	fastcgi_params;
    	}



这样PHP框架就可以使用PATH_INFO 重写了
分享到:
评论
5 楼 wpeng1123 2011-04-10  
仍然返回404  不行啊
4 楼 isno 2010-07-24  
pdreamer 写道
isno 写道
这里是实现apche里PATH_INFO
 
   对于上传文件,肯定要验证文件的type



如果用flash上传控件,所有mime都是application/octet-stream,没法验证的

这里的漏洞是不能留给别人来处理的,你这里稍做rewrite就能解决


谢谢提醒!
3 楼 pdreamer 2010-07-22  
isno 写道
这里是实现apche里PATH_INFO
 
   对于上传文件,肯定要验证文件的type



如果用flash上传控件,所有mime都是application/octet-stream,没法验证的

这里的漏洞是不能留给别人来处理的,你这里稍做rewrite就能解决
2 楼 isno 2010-07-22  
这里是实现apche里PATH_INFO
 
   对于上传文件,肯定要验证文件的type
1 楼 pdreamer 2010-07-22  
危险
当请求 http://localhost/upload/test.jpg/test.php的时候,你说会怎样呢?
如果test.jpg里放的是php脚本,会发生什么事呢?

相关推荐

    nginx下支持PATH_INFO的方法实例详解

    要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能。 php中有两个pathinfo,一个是环境变量$_SERVER[‘PATH_INFO’];另一个是pathinfo...

    Nginx配置支持ThinkPHP的PATH_INFO

    Nginx支持ThinkPHP的PATH_INFO 环境 Ubuntu 14.04+Nginx+MySQL。所有程序都是通过apt-get安装的,所以Nginx的配置文件路径在/etc/nginx/sites-available/default。 解决方法 定位到Nginx配置文件的如下部分: 代码...

    nginx+php,让nginx支持PHP的PATHINFO路由模式_亲测成功.zip

    nginx+php,让nginx支持PHP的PATHINFO路由模式_亲测成功.zip apache+php支持PATHINFO路由模式非常容易,但是nginx对pathinfo可不支持,需要你自己配置正则路径.看看我怎么配的

    nginx 配置pathinfo

    nginx默认不支持pathinfo,最近在调用而支付宝的回调接口 只能使用这种模式

    在nginx中配置pathinfo模式支持thinkphp的URL重写

    最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,...

    Nginx(PHP/fastcgi)的PATH_INFO问题

    都会认为是对info.php的访问, 并会设置PATH_INFO为dummy 而对于Nginx下, 是不支持PATH INFO的, 也就是它不会默认设置PATH_INFO. 而因为默认的配置文件对PHP的支持只是很基础的, 所以对于默认配置来说对于上面的访问...

    嵌入Python脚本的Nginx模块ngx_python.zip

     --prefix=/path/to/nginx \  --add-module=/path/to/ngx_python ```摘要```nginx user www www; worker_processes 4; events {  worker_connections 1024; } http {  include mime.types;  ...

    解决nginx不支持thinkphp中pathinfo的问题

    其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。为了使问题简单化,我选择了第一种方式,因为就第二种方式,我查了很多资料,发现...

    nginx配置支持php的pathinfo模式配置方法

    主要介绍了nginx配置支持php的pathinfo模式配置方法,需要的朋友可以参考下

    thinkphp在低版本Nginx 下支持PATHINFO的方法分享

    最近在用thinkphp做一个项目,基本完成后部署到nginx服务器上才发觉nginx是不支持pathinfo的那么我们如何来处理呢。 Nginx环境 在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf(在/usr/local/nginx...

    Nginx的SQLite模块ngx_sqlite.zip

     --prefix=/path/to/nginx \  --add-module=/path/to/ngx_sqlite $ make $ make install ```摘要```nginx user www www; worker_processes 4; events {  worker_connections 1024; } http {  ...

    nginx中配置pathinfo模式示例

    很久不使用apache了,渐渐对apache感到陌生,因为朋友有个ZendFramework框架从apache移到nginx下,需要pathinfo模式支持。 网上海搜 于是开始搜索nginx+pathinfo相关文章,一开以为很容易就会配置好。因为搜索后发现...

    Nginx如何实现pathinfo模式的方法详解

    pathinfo是伪静态的一种,对于用过thinkphp的朋友们来说应该都不陌生,下面这篇文章主要给大家介绍了关于Nginx如何实现pathinfo模式的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。

    浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法

    突然发现nginx不支持pathinfo功能,难怪在TP中调怎么都没管用。 2,开始上文件了,比网上其他一些杂的好多了: server { listen 80; #listen [::]:80; server_name www.tp.com tp.com; index index....

    nginx的php模块ngx_php.zip

     --prefix=/path/to/nginx \  --with-ld-opt="-Wl,-rpath,$PHP_LIB" \  --add-module=/path/to/ngx_php/dev/ngx_devel_kit \  --add-module=/path/to/ngx_php 概要 user www www; worker_processes 4; ...

    Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持

    如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件。找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远): 代码如下:  location ~ .*.(php|php5)?$...

    nginx中path模式配置示例

    主要介绍了nginx中path模式配置示例,nginx服务器默认是不支持pathinfo模式的,需要修改配置才可以实现,本文即给出了配置示例,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics