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

xiaoxiao2021-02-28  93

首先在入口文件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:里面还有两个例子可以过去看看)

转载请注明原文地址: https://www.6miu.com/read-21038.html

最新回复(0)