Nginx下fastcgi_split_path_info导致CodeIgniter配置问题
突然发最近又有点懒散了,很久没有写东西了!今天谈点关于不是什么很新的问题,在nginx下配置ci框架时,由于path_info没有设定,导致ci url无法获取出错,导致route出错!对于php的很多框架,这个问题都是适用的!开始找了一些网上的 dome 基本都有问题,最后参考官方的资料才解决,不少不废话了… 直接code….
server {
listen 80;
server_name app.i.enet.com.cn appmarket.i.enet.com.cn;
root /home/httpd/androidmarket;
#index index.shtml index.html index.htm;
autoindex on;
#charset koi8-r;
access_log logs/app.access.log main;
error_log logs/app.error.log;
default_type text/plain;
location / {
index index.shtml index.html index.htm;
#rewrite ^/$ /index.php last;
#rewrite ^/(?!index.php|robots.txt|images|js|styles)(.*)$ /index.php/$1 last;
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ .*.php? {
#fastcig 使用socket方式比较快...
fastcgi_pass unix:/tmp/nginx.socket;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
#下面只是了一些fastcgi.conf中定义的一些公共的东西 如果没有定义请自己开启
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_NAME $real_script_name;
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的conf路径
include /usr/local/nginx/conf/fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /.ht {
# deny all;
#}
}
官方资料:http://wiki.nginx.org/HttpFastcgiModule#fastcgi_split_path_info,