yii2 0中url重寫實現方法

2022-08-23 09:15:13 字數 2834 閱讀 6462

在yii框架裡有前台和後台頁面,舉例前台url重寫。

控制器以controller作為字尾,繼承自yii\web\controller;

動作以action作為字首,public訪問修飾;

控制器id 類名去字尾,全部轉為小寫,如果是駝峰命名多個單詞轉為中槓分割;

動作id 去字首,全部轉為小寫,如果是駝峰命名多個單詞,轉為中槓分割;

路由如何指向動作:控制器id/動作id

預設動作idindex定義在yii\base\controller::$defaultaction

1.新建乙個foobarcontroller.php

}url幫助類工作方式演示

use yii\helpers\url;

// 同乙個控制器中的action

echo url::toroute(['update','id'=>'1']); //如果沒有引數,可以傳字串,不需要陣列

// 不同控制器的action(同乙個module)

echo url::toroute('post/index');

// 絕對路由(可以跳出當前module,如果啟用了module,需要在前面加入module的id)

echo url::toroute('site/index')

// 當前控制器,多個單詞組成的action,例如actionuserinfo

echo url::toroute('user-info');

// 控制器中間有大寫的情況,例如 datetimecontroller中的actionupdate方法

echo url::toroute(['date-time/update','id'=>105]);

// 帶網域名稱的url

echo url::toroute('site/index',true);

// 路由別名

echo url::toroute('@register'); //需要先註冊別名,例如yii::setalias('@register','site/register')

// 拼接image、css等

echo url::to(); //為空時表示當前url包括引數

echo url::to(陣列); //等價url::toroute(陣列)

echo url::to('@baidu'); //別名,例如yii::setalias('@baidu','')

return $this->redirect(['site/index']); //內部呼叫 url::to()生成url,所以大多數情況下需要傳入乙個陣列

首先需要配置apache

1.修改apache的配置httpd.conf

(1)開啟apache的mod_rewrite模組去掉loadmodule rewrite_module modules/mod_rewrite.so前的「#」符號

(2)確保中有「allowoverride all」

批註:對於wamp而言,第二個allowoverride all已經開啟。

allowoverride在apache的配置檔案出現三次,但是只有乙個地方需要 all,其他兩個地方都是none。

(3)重啟apache

在yii2.0不同後台的config/mian.php裡的

'urlmanager' => [

'enableprettyurl' => true,

'showscriptname' => false,

'rules' => [

],],

解除為

'components' => [

'urlmanager'=>[

'enableprettyurl'=>true, //是否美化url(去掉?r=)

'showscriptname'=>false, //去掉index.php(apache需要開啟rewrite,並新增.htaccess檔案)

'rules'=>,

],],

[ .htaccess ]檔案內容如下:

把下面的內容儲存為.htaccess檔案放到應用入口檔案web/index.php的同級目錄下

rewriteengine on

rewritecond % !-d

rewritecond % !-f

rewriterule ^(.*)$ index.php  #訪問所有的都會先指向index.php

[ nginx ]

在nginx低版本中,是不支援pathinfo的,但是可以通過在nginx.conf中配置**規則實現:

location / 

}

注:本文由王智磊(王大寶兒)

Yii2 0中實現規劃任務

size x large size large 1.在 console controllers 資料夾下建立乙個把握器 namespace console controllers use yii console controller test controller class testcontrol...

yii2 0 最簡單rbac實現方法

許可權設定 公司角色 銷售,專案經理,人事,老闆 公司成員 小銷是銷售,小項是專案經理,小李是人事,老雷是老闆 系統裡面有menu 客戶管理,專案管理,人事管理 需求描述 銷售客戶訪問客戶管理,專案經理可以訪問專案管理,人事可以訪問人事管理,老闆都可以訪問 實現過程 第一步 生成rbac相關的表 m...

Yii 2 0常用方法記錄

headers is an object of yii web headercollection returns the accept header value accept headers get accept if headers has user agent if session isacti...