php 去除路由中index.php 通过 .htaccess 文件

来源:互联网 发布:我的淘宝等级是什么 编辑:程序博客网 时间:2024/05/16 06:06

首先在入口文件index.php得的当前目录下 创建 .htaccess文件。
(ps:如何创建就自己先搜一下,我是直接复制过来的)
这里写图片描述

然后将下面一段代码放进去;

RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php/$1 [L]

放进去之后像这样:
这里写图片描述

重启一下apache 然后试试路由中不加入index.php是否能访问,
例如:http://adi.dev/index.php/show/index.html 变成了
http://adi.dev/show/index.html 如果能正常访问了就可以了。
这些代码是利用apache的路由重写来实现去除index.php的;
【使用这种方式,首先要确认apache是否开启mod_rewrite 功能】
这里写图片描述
上面是ci框架手册里面说到的相关信息。

关于.htaccess文件代码的意思:

RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。

RewriteEngine onRewriteCond  %{HTTP_USER_AGENT}  ^Mozilla//5/.0.*RewriteRule  index.php            index.m.phpRewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*RewriteRule  index.php            index.L.php RewriteRule  index.php            index.b.php

上面语句的作用是当你是用FF浏览器访问index.php这个文件的时候,会自动让你访问到index.m.php这个文件,当你是用一些移动终端访问的 时候,会让你对index.php这个文件的访问实际访问的是index.L.php去,如果你是用其它的浏览器访问的时候,会让你跳到 index.b.php。在说形象一点,上面的语句就等同于程序里面的下面语句(依PHP语句为例):

if($_SERVER['HTTP_USER_AGENT'] == 'Mozilla/5.0'){//跳转到对index.m.php的访问}else if($_SERVER['HTTP_USER_AGENT'] == 'Lynx'){//跳转到对index.L.php的访问}else//跳转到对index.b.php的访问

原文出处:http://www.jb51.net/article/39298.htm
(ps:里面还有两个例子可以过去看看)

原创粉丝点击