解决运行CI框架的地址在NG服务器报404错误的原因
博客专区 > MikeMei 的博客 > 博客详情
解决运行CI框架的地址在NG服务器报404错误的原因
MikeMei 发表于2年前
解决运行CI框架的地址在NG服务器报404错误的原因
  • 发表于 2年前
  • 阅读 18
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 解决CI框架下的URL格式,在NG服务器下无法识别问题,并且报出404错误

最近在搞公司的泰分五周年活动,需要写一个简单的小网站,有投票,上传作品投票,及后台管理功能。

既然交给我,我就好好完成它。于是乎我选择用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;

  注意要有:($|/)部分

标签: NG 404
共有 人打赏支持
粉丝 0
博文 51
码字总数 16203
×
MikeMei
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: