yii2 url最佳化問題

來源:互聯網
上載者:User

想要對Url進行最佳化,全部變為路徑模式

如:http://xxx.com/topic/index?id=1&type=1
轉變為:http://xxx.com/topic/index/id/1/type/1

可以通過配置rules:
'//id//type/'=>'/'

但是如果我傳得參數不一樣,比如再加一些參數,或者參數名非type和id,就無法匹配這個rule,難道要針對每一中參數都配置一個rule嗎?

想通過正則把參數寫為或的形式,但是沒能成功,不知道這個正則的寫法和規則是怎麼樣的,有沒有官方文檔說明啊?

還有一種方式是重載urlManager類中的方法,感覺稍微複雜了一點,還沒嘗試,請大家指點迷津,給個思路?謝謝了!

回複內容:

想要對Url進行最佳化,全部變為路徑模式

如:http://xxx.com/topic/index?id=1&type=1
轉變為:http://xxx.com/topic/index/id/1/type/1

可以通過配置rules:
'//id//type/'=>'/'

但是如果我傳得參數不一樣,比如再加一些參數,或者參數名非type和id,就無法匹配這個rule,難道要針對每一中參數都配置一個rule嗎?

想通過正則把參數寫為或的形式,但是沒能成功,不知道這個正則的寫法和規則是怎麼樣的,有沒有官方文檔說明啊?

還有一種方式是重載urlManager類中的方法,感覺稍微複雜了一點,還沒嘗試,請大家指點迷津,給個思路?謝謝了!

直接把 UrlManager中這個參數配置成true

   /**     * 路由的路徑化     *      * @var bool     */    public $enablePrettyUrl = true;

第一:在設定檔加上 urlManager項,看代碼:

 'urlManager'=>[    'class' => 'yii\web\UrlManager',    'enablePrettyUrl' => true,    'showScriptName' => false,    'rules'=>[    '//' =>'/',    '/' => '/read',    's' => '/list',         ],     ],

第二,在index.php同級目錄下建立.htaccess檔案,把下面的代碼貼上:

Options +FollowSymLinksIndexIgnore */*RewriteEngine on# if a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward it to index.phpRewriteRule . index.php

原文地址:http://www.yiichina.com/tutorial/622

或者參考這個:http://www.cnblogs.com/dcb3688/p/4607968.html

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.