yii架構網址解析問題

來源:互聯網
上載者:User
首先如果你在config/main.php裡面沒有配置urlManager的話,那麼流程如下(摘自yii官網)使用者發出了存取 URL http://www.example.com/index.php?r=post/show&id=1 的請求,Web 服務器通過執行入口指令碼index.php 處理此請求。入口指令碼建立了一個 應用 執行個體並執行。應用從一個叫做 request 的 應用組件中獲得了使用者請求的詳細資料。應用在一個名叫 urlManager 的應用組件的協助下,決定請求的 控制器和 動作 。在這個例子中,控制器是 post,它代表 PostController 類;動作是 show ,其實際含義由控制器決定。應用建立了一個所請求控制器的執行個體以進一步處理使用者請求。控制器決定了動作show 指向控制器類中的一個名為 actionShow 的方法。然後它建立並持行了與動作關聯的過濾器(例如存取控制,基準測試)。如果過濾器允許,動作將被執行。動作從資料庫中讀取一個 ID 為 1 的 Post 模型。動作通過 Post 模型渲染一個名為 show 的 視圖。視圖讀取並顯示 Post 模型的屬性。視圖執行一些 小物件。視圖的渲染結果被插入一個 布局。動作完成視圖渲染並將其呈現給使用者。但是如果你已經配置了urlManager如下:'urlManager'=>array(            'urlFormat'=>'path',            'rules'=>array(                '<controller:\w+>/<id:\d+>'=>'<controller>/index',                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',            ),        ),那麼直接存取http://www.example.com/index.php?r=post/show&id=1就不可能得到show action的結果了。首先這個請求會交給defaultController的indexAction處理,defaultController在main.php裡制定,如果defaultController不是PostControler,你可能就會莫名其妙了。如果正好是的話,則會返回indexAction的內容,而不是showAction。其實要訪問這個也很簡單,http://www.example.com/index.php/post/show?id=1就行了因為urlManager已經設定成按照<controller>/<action>的形式 

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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