最近在搞公司的泰分五周年活动,需要写一个简单的小网站,有投票,上传作品投票,及后台管理功能。
既然交给我,我就好好完成它。于是乎我选择用CI框架,搭配NG服务器。
运行代码的时候,一直报错: 404
URL如下:
http://thaififteen.com/index.php/mascot/index (此域名是内网配置的HOST)
查询了一下,默认情况下NG是不支持PATH_INFO的,并且NG会把“index.php/”当成一个目录,NG错误日志里面提示很明确了。
解决方法:使NG支持PAHT_INFO就好了。
server {
listen 80;
server_name thaififteen.com;
root /data/wwwroot/thaififteen/;
index index.php index.html;
location ~ \.php($|/) {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
access_log /data/other/nginx_logs/${host}_${server_port}_access.log main;
}
在默认的配置里面添加如下就可以是NG支持了:
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
注意要有:($|/)部分