在使用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框架自己的配置: