Yii2.0 Basic代码中路由链接被转义的处理方法

按照惯例,说下运行环境和各版本编号

OS:Windows10
Apache:2.4
MySQL:5.7.15
PHP:7.0.11

问题描述:按照官网的提示,下载了basic版本的代码,配置了虚拟域名,打开浏览器可以访问了(具体过程略)。

Yii2.0 Basic代码中路由链接被转义的处理方法

但是,在点击链接地址时会发现,链接地址被转义了,“/”变成了“%2F”。

Yii2.0 Basic代码中路由链接被转义的处理方法

查找代码,一步一步找。

Yii2.0 Basic代码中路由链接被转义的处理方法

Yii2.0 Basic代码中路由链接被转义的处理方法

Yii2.0 Basic代码中路由链接被转义的处理方法

找到最后yii-v2.0.9-basic\vendor\yiisoft\yii2\web\UrlManager.php 第371行,发现url链接被urlencode转义了,这里我把它拿掉了。再访问就OK了。

Yii2.0 Basic代码中路由链接被转义的处理方法

最后贴上代码查找路径:

yii-v2.0.9-basic\views\layouts\main.php
yii-v2.0.9-basic\vendor\yiisoft\yii2-bootstrap\Nav.php (200行 Html::a()方法)
yii-v2.0.9-basic\vendor\yiisoft\yii2-bootstrap\Html.php
yii-v2.0.9-basic\vendor\yiisoft\yii2-bootstrap\BaseHtml.php
yii-v2.0.9-basic\vendor\yiisoft\yii2\helpers\Html.php
yii-v2.0.9-basic\vendor\yiisoft\yii2\helpers\BaseHtml.php
yii-v2.0.9-basic\vendor\yiisoft\yii2\helpers\Url.php
yii-v2.0.9-basic\vendor\yiisoft\yii2\helpers\BaseUrl.php(102行 static::getUrlManager()->createUrl)
yii-v2.0.9-basic\vendor\yiisoft\yii2\web\UrlManager.php(371行 urlencode方法)

相关推荐