如何让Nginx支持Codeigniter框架的重写规则

之前有一个系统是用codeigniter框架编写的,当时是使用Apache服务器,后来迁移VPS后,装了LNMP,由于Apache和Nginx的重写规则不一样,因此必须进行修改,折腾了好久,终于搞定了,现在把配置贴出来,希望能帮到大家,同时备份一下,方便以后查找。

若使用的是LAMP环境,可以参考另外一篇文章:《如何让Apache支持Codeigniter框架的重写规则

 

前提条件:使用LNMP安装包安装的Nginx

步骤一:在/usr/local/nginx/conf/目录下新建文件ci.conf,内容如下:

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

location ~ .*\.(php|php5)?$ {
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param PATH_INFO $fastcgi_script_name;
}

 

步骤二:执行命令/root/vhost.sh添加虚拟主机的过程中设置使用ci.conf文件,如下图:

nginx codeigniter rewrite

完成的配置文件内容如下:

server
        {
                listen 80;
                #listen [::]:80;
                server_name test.gevin.me;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/test.gevin.me;

                #下面这行为新增内容
                include ci.conf;
                #error_page   404   /404.html;
                location ~ [^/]\.php(/|$)
                        {
                                # comment try_files $uri =404; to enable pathinfo
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fastcgi.conf;
                                #include pathinfo.conf;
                        }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }

                access_log off;
        }

即在test.gevin.me.conf配置文件中将新增include ci.conf文件,若在使用/root/vhost.sh添加虚拟主机时未使用rewrite规则,则可以后期在配置文件中新增include ci.conf配置即可。

另外,配置文件中默认生成的下面这段配置信息,经测试,可以删除掉,也可以不删除掉,大家自己看着办了。

location ~ [^/]\.php(/|$)
     {
          # comment try_files $uri =404; to enable pathinfo
          try_files $uri =404;
          fastcgi_pass  unix:/tmp/php-cgi.sock;
          fastcgi_index index.php;
          include fastcgi.conf;
          #include pathinfo.conf;
      }

步骤三:重启Nginx

/etc/init.d/nginx restart

本文固定链接: http://gevin.me/731.html | Gevin's Blog

该日志由 admin 于2014年08月08日发表在 PHP 分类下, 通告目前不可用,你可以至底部留下评论。
原创文章转载请注明: 如何让Nginx支持Codeigniter框架的重写规则 | Gevin's Blog
关键字: ,

如何让Nginx支持Codeigniter框架的重写规则:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter