这样比默认路由好多了,但是如果能把 index.php
入口脚本更好呢?
在 index.php
同级目录中,新建 .htaccess
文件,并添加如下代码:
RewriteEngine on
如果是一个目录或者文件,就访问目录或文件
RewriteCond %{REQUEST_FILENAME} !-d
如果文件存在,就直接访问文件,不进行下面的RewriteRule
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php
此时直接访问,当然还是无法省略 index.php
访问的,还需要 web
服务器开启路由重写功能才行。
apache
直接开启路由重写模块即可。nginx
则需要在配置域名时添加如下代码才行:
location / {
Redirect everything that isn’t a real file to index.php
try_files $uri
u
r
i
/
/
i
n
d
e
x
.
p
h
p
uri/ /index.php
uri//index.phpis_args$args;
}
此时,我们便可以通过 域名/site/index
访问了。
同时访问
以上两种路由访问方式,无论配置与不配置,都只能实现一种方式,那么,如果实现两种路由都能访问呢,这就需要我们对框架中的路由分发功能进行重写。
在 common/components
文件夹下新建 urlManager
继承自带的路由处理类,并重写路由分发的功能,具体代码如下:
<?php namespace common\components; class urlManager extends \yii\web\UrlManager { /\*\* \* 解析路由请求,兼容美化与非美化路由 \* @param \yii\web\Request $request \* @return array|bool \*/ public function parseRequest($request) { // 这里实际上就是通过判断 get 参数中 r 的值是否为空,如果为空则是美化路由,否则即为默认的路由方式,?r=site/index,如果 r 参数不为空,则仍然通过默认路由方式访问,否则以美化路由形式访问 $route = $request->getQueryParam($this->routeParam, ''); if ($route != '') { $this->enablePrettyUrl = false; } return parent::parseRequest($request); } } 只是重写方法,不使用也不会发生作用,因此我们需要在配置文件中,使用路由美化使用自定义的路由处理类,代码如下: **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。** ![img](https://img-blog.csdnimg.cn/img_convert/5be3cbaaedb3a35a548a0be8207adb3f.png) ![img](https://img-blog.csdnimg.cn/img_convert/ed5314787a290d874b26a1e28a9b747f.png) ![img](https://img-blog.csdnimg.cn/img_convert/6c3b8efd1fc97d18dc192753e186b612.png) ![img](https://img-blog.csdnimg.cn/img_convert/a98dd2f5ddc35d566fdd86fa01f2353e.png) ![img](https://img-blog.csdnimg.cn/img_convert/14fa1a3be6fc106a2be7673ccc87eb1c.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)** ![img](https://img-blog.csdnimg.cn/img_convert/5a6fa37a96be9d48147fd3065fdc6e9e.jpeg) **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** 的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**