A-A+

Codeigniter去掉URL中的index.php

2012年09月29日 CodeIgniter 评论 1 条

去掉 URL 中的 index.php

首先,你要清楚自己的 Web 服务器是 Apache,支持 mod_rewrite,并且已经配置好 rewrite 相关的参数。 
什么是 rewrtie 可以 Google 一下。

打开apache的配置文件,conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so,把该行前的#去掉。
搜索 AllowOverride None(配置文件中有多处),看注释信息,将其改为AllowOverride All

然后,在 CI 根目录(与index.php同级) 下新建立一个配置文件,命名为: .htaccess 
在里面这样写:


Php代码  

  1. RewriteEngine on    
  2. RewriteCond $1 !^(index.php|images|robots.txt)    
  3. RewriteRule ^(.*)$ /index.php/$1 [L]  

 


就可以去掉 index.php 了。要注意 /index.php/$1 要根据你目录(Web 目录,比如 http://www.domain.com/index.php)的实际情况来定,比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/$1

Php代码  

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

 


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

Php代码  

  1. /* 
  2. |-------------------------------------------------------------------------- 
  3. | Index File 
  4. |-------------------------------------------------------------------------- 
  5. | 
  6. | Typically this will be your index.php file, unless you've renamed it to 
  7. | something else. If you are using mod_rewrite to remove the page set this 
  8. | variable so that it is blank. 
  9. | 
  10. */  
  11. $config['index_page'] = "index.php";  

 

把其中的 "index.php" 改成 "" 就可以了。

http://codeigniter.org.cn/user_guide/general/urls.html

启用查询字符串

在一些情况下你需要在 URL 中使用查询字符串:

index.php?c=products&m=view&id=345

CodeIgniter 支持这个功能是可选的,可以在 application/config/config.php 文件中进行设置。如果你打开 config 文件可以看到如下内容:

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c'; //控制器名
$config['function_trigger'] = 'm'; //方法名
$config['directory_trigger']='d'; //若控制器在子目录下,URL中需带有这个参数,指定控制器所在子目录名称

如果你将 enable_query_strings 更改为 TRUE ,那么这个功能就被激活了。此时,你就可以通过关键字来调用需要的控制器和方法了:

index.php?c=controller&m=method

请注意:如果你使用查询字符串,那么就必须使用自己建立的 URL ,而且不能使用URL 辅助函数(或是其他生成 URL 的辅助函数,例如表单辅助函数),因为这些都是根据分段 URL 设计的。

1 条留言  访客:1 条  博主:0 条

  1. pm2.5查询

    http://www.zhibolive.com 虽然看不懂,但还是感谢

给我留言

Copyright © 破晓Web实验室 保留所有权利.   Theme  Ality 沪ICP备14044094号

用户登录