CI去掉index.php

发布时间:2016-03-25 浏览次数:4070 文章来源:个人博客

在使用codeingniter框架(简称CI)的时候,在url中需要去掉index.php这个东东,使得url更加好看。


CI框架的url一般形式为:example.com/index.php/welcome/index


那么,要去掉index.php应该怎么做呢?


(1)apache服务器


  • 打开conf/httpd.conf

  • 找到#LoadModule rewrite_module modules/mod_rewrite.so

  • 把前面的#号去掉。

  • vhost中找到配置站点的信息:

  •          DocumentRoot "F:\Code\myblog"
             ServerName www.myblog.com
             DirectoryIndex index.php
                          Options Indexes FollowSymLinks
                              AllowOverride None
                 Order allow,deny
                 Allow from all
  • 把AllowOverride None中的None改为All

  • 在CI框架的更目录下(在index.php,system的同级目录下)创建一个.htaccess文件

  • 在.htaccess中写入

  Options +FollowSymlinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

重启apache。配置完成。


(2)nginx服务器



修改nginx/conf/vhost文件下的的对应站点配置
location /{
    if (-f $request_filename) {
        expires max;
        break;
    }
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php/$1 last;
    }
}


还有,对于nginx如如何配置支持path_info,可以参考:nginx支持path_info访问



提醒:不要改完服务器上的配置,不要忘记改掉CI框架自己的配置:

$config['index_page'] = "index.php";

改为

$config['index_page'] = "";


key-word
CI框架去掉index.php 去掉index.php配置 CI去掉index.php配置 apache去掉index.php nginx去掉index.php