標籤:info div extend $path 屬性 tty manage 重寫 config
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 allowedreturn false;}} else {// 就這一句區別用父類// suffix doesn‘t matchreturn [$pathInfo, []];}}//other code ..}}
* 然後再次配置config.php
[‘components‘ => [‘urlManager‘ => [‘class‘ => ‘common\yiiext\web\UrlManager‘,‘enablePrettyUrl‘ => true,‘suffix‘ => ‘.html‘,],],];
Yii2 之 UrlManager 實踐 (一)