woodphp 发表于 2013-5-7 09:45:05

终于搞定了隐藏index.php!

参考官网的指南:
/*
默认情况下,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
注意:如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1
*/
我的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

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

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

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

iserich 发表于 2013-5-7 10:04:29

好方法!

egirlasm 发表于 2013-7-1 03:27:46

mark一下 以后用

ypchen 发表于 2013-7-9 17:06:29

linux下可以这样设置吗?

双双 发表于 2013-12-26 14:17:28

很好

天生我才 发表于 2014-2-14 11:19:58

是不是通用,各种主机都支持吗

jackbang 发表于 2014-4-17 17:21:09

不管怎样,先MARK一个,备有艇

Howgrow 发表于 2014-4-17 20:37:10

十万个赞!

hydra 发表于 2014-7-17 16:27:35

mark 留用

aqxinzhuan 发表于 2014-8-8 17:03:39

这个需要apache开启Rewrite模块
页: [1]
查看完整版本: 终于搞定了隐藏index.php!