yii2 實現預設路由與美化路都能訪問

2021-10-01 03:06:03 字數 1755 閱讀 3250

yii2框架預設路由形式如下:index.php?r=site/index,這樣的路由形式不太美觀,因此我們通常使用美化路由,很方便的是,yii2也很提供路由美化功能。

路由美化

yii2中,關於路由美化的配置項預設是注釋掉的,如果我們想啟動路由美化,只需要開啟注釋即可。

'urlmanager'

=>

['enableprettyurl'

=>

true

,'showscriptname'

=>

false

,'rules'

=>

,],

此時,我們便可以通過美化後的路由進行訪問了,如:index.php/site/index

這樣比預設路由好多了,但是如果能把index.php入口指令碼更好呢?

index.php同級目錄中,新建.htaccess檔案,並新增如下**:

rewriteengine on

# 如果是乙個目錄或者檔案,就訪問目錄或檔案

rewritecond %!-d

# 如果檔案存在,就直接訪問檔案,不進行下面的rewriterule

rewritecond %!-f

rewriterule . index.php

此時直接訪問,當然還是無法省略index.php訪問的,還需要web伺服器開啟路由重寫功能才行。

apache直接開啟路由重寫模組即可。nginx則需要在配置網域名稱時新增如下**才行:

location /

此時,我們便可以通過網域名稱/site/index訪問了。

以上兩種路由訪問方式,無論配置與不配置,都只能實現一種方式,那麼,如果實現兩種路由都能訪問呢,這就需要我們對框架中的路由分發功能進行重寫。

common/components資料夾下新建urlmanager繼承自帶的路由處理類,並重寫路由分發的功能,具體**如下:

<?php

namespace

common\components

;class

urlmanager

extends

\yii\web\urlmanager

return

parent::

parserequest

($request);

}}

只是重寫方法,不使用也不會發生作用,因此我們需要在配置檔案中,使用路由美化使用自定義的路由處理類,**如下:

'urlmanager'

=>

['class'

=>

'common\components\urlmanager'

,'enableprettyurl'

=>

true

,'showscriptname'

=>

false

,'rules'

=>

,],

此時,通過預設路由和美化路由都可以進行訪問了。

Yii2基礎筆記(一) Yii2預設模板入門使用

0.yii2的工作原理1.進行使用者註冊 或 登入的實現過程,要注意 定義 場景 及 場景的使用。登入場景 只要 使用者名稱和密碼,註冊場景 可能要 使用者名稱 密碼 郵箱 手機等等 yii2中登入相關的類的繼承關係是 2.除錯 可以採用 var dump this errors 來檢視錯誤資訊 3...

yii2核取方塊預設選擇

一 控制器 1.查詢出核取方塊中需要列出的列表 獲取前一頁面的url yii2.0 yii request getreferrer 2.判斷條件 需要預設顯示的資料 3.使用 model 字段 array 值 二 試圖 展示資料 form field model category id label ...

yii2實現彈框

1.首先引入命名空間 use yii bootstrap modal useyii helpers url echo html a 來乙個彈框 id create data toggle modal data target create modal 關聯下面model的id屬性 class btn ...