nginx下配置pathinfo

第一步:在nginx.conf的server部分:

    server {

     listen       8080;

     server_name  localhost;


     location ~ \.php {

      include        fastcgi.conf;

     }

    }

要点:  \.php 后面没有$,以便匹配所有 *.php/* 形式

重点代码见 fastcgi.conf 开头部分



  第二步:fastcgi.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;

以上是支持pathinfo的重点部分


        fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

        fastcgi_param  SERVER_SOFTWARE    nginx;


        fastcgi_param  QUERY_STRING       $query_string;

        fastcgi_param  REQUEST_METHOD     $request_method;

        fastcgi_param  CONTENT_TYPE       $content_type;

        fastcgi_param  CONTENT_LENGTH     $content_length;


        #fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        #fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

        #这两行是需要注释掉的。请注意

        fastcgi_param  REQUEST_URI        $request_uri;

        fastcgi_param  DOCUMENT_URI       $document_uri;

        fastcgi_param  DOCUMENT_ROOT      $document_root;

        fastcgi_param  SERVER_PROTOCOL    $server_protocol;


        fastcgi_param  REMOTE_ADDR        $remote_addr;

        fastcgi_param  REMOTE_PORT        $remote_port;

        fastcgi_param  SERVER_ADDR        $server_addr;

        fastcgi_param  SERVER_PORT        $server_port;

        fastcgi_param  SERVER_NAME        $server_name;