Yii2 之 UrlManager 實踐 (一)

來源:互聯網
上載者:User

標籤: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 實踐 (一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.