• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

去掉php框架CI默认url中的index.php

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

CI默认的rewrite url中是类似这样的

例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样 http://localhost/CodeIgniter/index.php/welcome。

不太好看,怎么把其中的index.php取掉呢?

 

解决方法如下:

第一步:

Apache Url Rewrite 配置(php伪静态)

检查 Apache 中 conf/httpd.conf 中是否存在如下一段代码:

#LoadModule rewrite_module modules/mod_rewrite.so

把 LoadModule前边的#去掉。

 

第二步:

在网站根目录添加.htaccess(和application、system在一个目录下)

内容为:

RewriteEngine on   

RewriteCond $1 !^(index\.php|images|robots\.txt)   

RewriteRule ^(.*)$ /index.php/$1 [L]

备注:

1、要注意 /index.php/$1 要根据你目录(Web 目录,比如 http://www.domain.com/index.php)的实际情况来定。

比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/$1

2、RewriteCond $1 !^(index\.php|images|robots\.txt)

上面的代码意思是排除某些目录或文件,使得这些目录不会 rewrite 到 index.php 上,这一般用在图片、js、css 等外部资源上。也就是说非 PHP 代码都要排除出去。(这里我排除了 images 目录和 robots.txt 文件,当然 index.php 也应该被排除)

 

第三步:

修改application/config.php

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

修改为:$config['index_page'] = "";

 

第四步:

httpd.conf文件中:

AllowOverride None

改为

AllowOverride All

 

注意:如果你做了虚拟站点,在httpd-vhosts.conf中做了多站点配置,就像我这样:

<VirtualHost *:81>
 DocumentRoot "d:/wamp/www/nxtv"
 ServerName 81
 <Directory "d:/wamp/www/nxtv">
  Options FollowSymLinks
  AllowOverride All
  Require all granted
 </Directory>
</VirtualHost>

<VirtualHost *:82>
 DocumentRoot "d:/wamp/www/codeigniter220"
 ServerName localhost:82
 <Directory "d:/wamp/www/codeigniter220">
  Options FollowSymLinks
  AllowOverride All
  Require all granted
 </Directory>

要记得 把 AllowOverride None 改为  AllowOverride All,我就在这里吃亏了=。=


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php仿照asp实现application缓存的代码分享发布时间:2022-07-10
下一篇:
php回调函数原理和实例发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap