首先在入口文件index.php得的当前目录下 创建 .htaccess文件。
(ps:如何创建就自己先搜一下,我是直接复制过来的)
然后将下面一段代码放进去;
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ 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 on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla//5/.0.*
RewriteRule index.php index.m.php
RewriteCond %{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:里面还有两个例子可以过去看看)
版权声明:本文为redaiyuqun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。