在使用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'] = "";