nginx支持codeigniter的pathinfo模式url重写配置写法示例

开发环境

codeigniter 2.14
PHP 5.4.18
nginx 1.4.2

Codeigniter配置

打开 codeignite 的 config.php 文件修改如下:

$config['uri_protocol'] = "PATH_INFO";

nginx配置

打开 nginx 的配置文件 nginx.conf 文件,修改如下:

# 我使用的是虚拟主机配置
server {
  listen  80;
  server_name dev.example.com;

  rewrite_log on;

  root /www/web/htdocs/dev.example.com;
  index index.php index.html index.htm;

  location / {
    index index.php index.html index.htm;
  }

  location ~ \.php($|/) {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^(.+\.php)(.*)$;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include  fastcgi_params;
  }

  if (!-e $request_filename) {
   rewrite ^/(.*)$ /index.php/$1 last;
   break;
  }

  location ~ /\.ht {
    deny all;
  }
}

现在就可以用pathinfo模式访问了,如:

http://dev.example.com/app/welcome/test

相关推荐