nginx配置pathinfo模式

记录一下新的服务器nginx配置pathinfo模式:
nginx服务器一开始是不支持pathinfo模式的,需要我们进行配置。

  1. 把lnmp下nginx的配置文件nginx.conf中的“include enable-php.conf”修改为“include enable-php-pathinfo.conf”
  2. 把php配置文件php.ini中的“cgi.fix_pathinfo=0”修改为“cgi.fix_pathinfo=1”

nginx配置pathinfo模式_第1张图片
enable-php-pathinfo.conf代码如下:

 location ~ [^/]\.php(/|$)
        {
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            include pathinfo.conf;
        }

记得要将代码放到上面。
解释说明:

  • location ~ .php$ 匹配到php文件就进行fastcgi操作
  • fastcgi_pass 127.0.0.1:9000;指明nginx与fastcgi交互的id和端口号,也就是fastcgi监听的端口
  • fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;这里声明了一个fastcgi参数,参数名称为SCRIPT_FILENAME(对,也就是php中 S E R V E R [ ′ S C R I P T F I L E N A M E ′ ] 的 值 ) , 这 个 参 数 表 明 目 标 进 程 要 执 行 哪 个 p h p 脚 本 _SERVER['SCRIPT_FILENAME']的值),这个参数表明目标进程要执行哪个php脚本 SERVER[SCRIPTFILENAME])phpdocument_root,$fastcgi_script_name都是nginx的常量,稍后给解释。此处声明的参数会通信给php-cgi,php-cgi会进行一些php的常量超级变量的初始化
$_SERVER['REQUEST_URI'],$_SERVER['SCRIPT_FILENAME'],$_SERVER['QUERY_STRING']

等等。

  • include fastcgi_params;这里是包含所有nginx常量,传递给php-cgi。

    当然这里可以—》

fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param QUERY_STRING $query_string;

部分nginx常量解释,以http://127.0.0.1:8000/?test=123&test2=abc为例子:

这里是引用

redirects后。好多框架、伪静态都用到rewrite。$_SERVER['REQUEST_URI']往往是一些框架初始化关键,$request_uri的不可变性保证了这一点。

$host  #请求主机头字段,否则为服务器名称。127.0.0.1

$query_string  #同$args;

$request_method #GET或POST;

$remote_addr    #客户端的IP地址;

$remote_port    #客户端的端口;

$server_addr    #服务器地址 127.0.0.1

$server_name    #服务器名称,localhost;

$server_port    #8000;

$request_filename #当前请求的物理文件的名称,本例为F:/home/projects/test/index.php。此值可以因重定向改变。

$request_uri     #包含请求参数的原始URI,不包含主机名,由客户端请求决定,不能修改。”/?test=123&test2=abc”。

参考文献:
https://blog.csdn.net/firstime_tzjz/article/details/52828242
https://www.cnblogs.com/boundless-sky/p/7649215.html
https://blog.csdn.net/u013703963/article/details/53857378
http://www.php.cn/php-weizijiaocheng-391596.html
https://my.oschina.net/codercpf/blog/1811044 ;

你可能感兴趣的:(nginx配置pathinfo模式)