codeigniter 在 nginx 下的 pathinfo url 重写配置

打开 nginx 的配置文件 nginx.conf 文件,修改如下:
01    # 我使用的是虚拟主机配置
02    server {
03            listen       80;
04            server_name  dev.example.com;
05    
06            rewrite_log on;
07    
08            root   /www/web/htdocs/dev.example.com;
09            index index.php  index.html index.htm;
10    
11            location / {
12                    index  index.php index.html index.htm;
13            }
14    
15            location ~ \.php($|/) {
16                fastcgi_pass   127.0.0.1:9000;
17                fastcgi_index  index.php;
18                fastcgi_split_path_info ^(.+\.php)(.*)$;   //注1
19                fastcgi_param   PATH_INFO $fastcgi_path_info;
20                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
21                include        fastcgi_params;
22            }
23    
24            if (!-e $request_filename) {
25                rewrite ^/(.*)$ /index.php/$1 last;
26                break;
27            }
28    
29            location ~ /\.ht {
30                    deny  all;
31            }
32    }

 

注1

****PATH_INFO:

该指令的参数是一个正则表达式分组一标识 $fastcgi_script_name、分组二标识 $fastcgi_path_info(等同于PHP $_SERVER 中的 PATH_INFO),前提条件是nginx版本大于0.7.31。

fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $path_info;

官方示例:

location ~ ^.+\.php {
  ...
  fastcgi_split_path_info ^(.+\.php)(.*)$;
  fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  ...
}

codeigniter 在 nginx 下的 pathinfo url 重写配置

上一篇:iOS 多参数 ...NS_REQUIRES_NIL_TERMINATION 的写法


下一篇:Hdu 2564 单词缩写(字符串输入流的使用)