用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4764|回复: 9
收起左侧

终于搞定了隐藏index.php!

[复制链接]
发表于 2013-5-7 09:45:05 | 显示全部楼层 |阅读模式
参考官网的指南:
/*
默认情况下,index.php 文件将被包含在你的 URL 中:
example.com/index.php/news/article/my_article
你可以很容易的通过 .htaccess 文件来设置一些简单的规则删除它。下面是一个例子,使用“negative”方法将非指定内容进行重定向:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f //此处有大坑。加上这句可保证一般css、js文件正常加载。(注意删掉这句注释哦)
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
注意:如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L]
*/
我的URL是:
http://10.19.1.1/index.php/news      //可正常访问
查看/etc/httpd/conf/http.conf文件,查看rewrite模块是否开启,并将AllowOverride None 更改为AllowOverride All。
重启apache服务器

在CI的根目录下,创建.htaccess文件:内容如下   //官网上直接复制下来的
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

在IE中打开:
http://10.19.1.1/news
出现404错误。
尝试:
http://10.19.1.1//news
成功访问页面。

为了去掉后面的一个“/”,修改.htaccess配置文件中的最后一行:
RewriteRule ^(.*)$ /index.php/$1 [L] ----》RewriteRule ^(.*)$ index.php/$1 [L]

在IE中打开:
http://10.19.1.1/news
成功访问。

发表于 2013-5-7 10:04:29 | 显示全部楼层
好方法!
发表于 2013-7-1 03:27:46 | 显示全部楼层
mark一下 以后用
发表于 2013-7-9 17:06:29 | 显示全部楼层
linux下可以这样设置吗?
发表于 2013-12-26 14:17:28 | 显示全部楼层
很好
发表于 2014-2-14 11:19:58 | 显示全部楼层
是不是通用,各种主机都支持吗
发表于 2014-4-17 17:21:09 | 显示全部楼层
不管怎样,先MARK一个,备有艇
发表于 2014-8-8 17:03:39 | 显示全部楼层
这个需要apache开启Rewrite模块

本版积分规则