首页 > 代码库 > Yii2 之 UrlManager 实践 (一)
Yii2 之 UrlManager 实践 (一)
1. enablePrettyUrl
yii2默认不支持类似 http://<domain>/site/error 的url格式,需要在config.php中启用 enablePrettyUrl 属性
[ //others ‘components‘ => [ ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ], ], ];
2. 配置suffix 实现伪静态 *.html
需要在 config.php中配置 urlManager 即可
[ ‘components‘ => [ ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘suffix‘ => ‘.html‘, ], ], ];
3. 同时支持 http://<domain>/site/error.html 以及 http://<domain>/site/error 的url格式
* 没有找到仅仅配置config便可以实现的方式,这里重写UrlManager。只重写了一句代码,仅贴部分展示代码
namespace common\yiiext\web; use yii; use yii\web\UrlManager as BaseUrlManager; class UrlManager extends BaseUrlManager { public function parseRequest($request) { if ($this->enablePrettyUrl) { //other code ... if ($suffix !== ‘‘ && $pathInfo !== ‘‘) { $n = strlen($this->suffix); if (substr_compare($pathInfo, $this->suffix, -$n, $n) === 0) { $pathInfo = substr($pathInfo, 0, -$n); if ($pathInfo === ‘‘) { // suffix alone is not allowed return false; } } else { // 就这一句区别用父类 // suffix doesn‘t match return [$pathInfo, []]; } } //other code .. } }
* 然后再次配置config.php
[ ‘components‘ => [ ‘urlManager‘ => [ ‘class‘ => ‘common\yiiext\web\UrlManager‘, ‘enablePrettyUrl‘ => true, ‘suffix‘ => ‘.html‘, ], ], ];
Yii2 之 UrlManager 实践 (一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。