CodeIgniter在nginx下rewrite配置问题

昨天在服务器上安装了Codeigniter,同时修改了nginx相关配置,ci可以正常运行了。

但今天在做表单提交时又出现了问题,问题如下:

在我之前的rewrite配置下,ci的正常url为http://localhost/example/news/ 此url可以正常访问

http://localhost/index.php/example/news/ 此url返回404页面

ci中生成form的函数 open_form('example/news')默认的提交action为http://localhost/index.php/example/news/

所以当我提交表单时总是提示404错误,开始我以为是form表单出了问题,可查阅资料后发现自己的写法并没有问题,而后发现访问上面两个url出现了不同页面,正常情况下两者应该相同,就此我判定应该是url重写或者是ci配置有问题。

查阅资料后发现,在application/config/config.php中的$config['index_page']要重新设置。

默认的配置
$config['index_page'] = 'index.php';
此处要改为
$config['index_page'] = '';

同时要注意

uri_protocol配置要改为
$config['uri_protocol'] = 'PATH_INFO';

nginx配置也要修改

server {
    listen       80;
    server_name  test;
        

    rewrite_log on;
    error_log /data/logsnginx/test_nginx_error.log info;
    

    location / {
        index index.html index.htm index.php;
        root  /data/www/test;
        

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

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

转载于:https://my.oschina.net/u/1036767/blog/634991

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值