首先如果你在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>的形式