解析CI即CodeIgniter框架在Nginx下的重写规则

时间:2022-04-24 15:52:21

最近研究CI框架,发现这个框架的路由功能在Nginx下有问题,报404错误,后来在网上查资料,
发现需要开启PATH_INFO。在nginx7.16以后貌似就支持PATH_INFO了,只需要在配置文件中开启即可。
打开nginx.conf文件,在你的虚拟主机下增加重写规则,代码如下:

复制代码 代码如下:


server {

      listen      80;
       server_name   www.ci.com;
       location / {
           root  d:/www/Codeigniter_2.0.1/;
           index  index.html index.htm index.php;
       rewrite ^/$/index.php last;
       rewrite^/(?!index\.php|robots\.txt|images|js|styles)(.*)$ /index.php/$1last;
       }
    location ~^(.+\.php)(.*)$ {
      root     D:/www/Codeigniter_2.0.1/;
      fastcgi_index   index.php;
      fastcgi_split_path_info ^(.+\.php)(.*)$;
      fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name;
      fastcgi_param   PATH_INFO      $fastcgi_path_info;
      fastcgi_param   PATH_TRANSLATED   $document_root$fastcgi_path_info;
      fastcgi_pass   127.0.0.1:9002;
      include   fastcgi_params;
    }
}