2012-04-16 94 views
1

我想使用此URL訪問Yii中的url www.example.com/detail/post在Yii中重寫URL

我應該能夠處理這個網址要麼行動detail與具有價值post參數或一些行動有一個命名參數detail和值post

我閱讀了關於createUrl的Yii文檔,但無法理解。

回答

2

我想這就是你要找的內容是:

更新main.php以下(在部分轉換控制,說控制器/細節,無論你的控制器的名字)

'urlManager' => array(
    'urlFormat' => 'path', 
    'showScriptName' => false, 
    'rules' => array(
      'detail/<post:\d+>'=>'controller/detail', 
      '<controller:\w+>/<id:\d+>' => '<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
      '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
    ), 
), 

所以基本上你要告訴Yii格式細節/數字中的任何請求都會傳遞給你的控制器,並使用「細節」動作,然後傳遞一個名爲「post」的變量。

+0

謝謝你的回答,它幫了我很多。 – Arif 2012-04-17 19:11:38

0

如果已經啓用國防部重寫,並要放置在你的htaccess文件

php_value upload_max_filesize 1M 
DirectoryIndex index.php 

Options +FollowSymlinks 
RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 

以下,並添加以下到「urlManager」陣列在你的配置/ main.php文件:

'showScriptName'=>false, 

將從您的網址中刪除index.php,並確保只以domain.com/controller/action的形式顯示網址