2012-11-05 121 views
0

我已經開發了一個web應用程序,現在想用yii重寫yii,im中的url。重寫模式已開啓並正在處理除yii之外的其他php項目。我目前的網址是/myhost/servers_cms/index.php?r=users/admin,但我想要這個/ myhost/servers_cms/users/admin。yii自定義url重寫

這裏是我的main.php代碼

'urlManager'=>array(
'urlFormat'=>'path', 
'showScriptName'=>false, 
'caseSensitive'=>false, 
), 

的.htaccess代碼

RewriteEngine On 
RewriteBase /servers_cms 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA] 

回答

0

我用這對我的.htaccess:

# 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'=>array(
    'urlFormat'=>'path', 
    'showScriptName' => false, 
    'rules'=>array(     
     'test'=>'users/admin', 
     ... 

然後,您應該能夠去* /爲myhost/servers_cms /測試*和訪問用戶/管理員控制器/動作

+0

感謝讓我檢查 –

0

添加在main.php

'urlManager' => array(
'class' => 'UrlManager', 
'urlSuffix' => '/', 
'urlFormat' => 'path', 
'showScriptName' => true, 
'caseSensitive'=>false, 
'rules' => array(
'<controller:\w+>' => '<controller>/index', 
'<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
) 
) 

的下面以下行定義

'<controller:\w+>' => '<controller>/index', 
'<controller:\w+>/<action:\w+>' => '<controller>/<action>', 

如果控制器名稱爲「user」,則它會重定向到「example.com/user/index」

如果控制器是「用戶」和動作是「管理員」,那麼它會重新導向至「example.com/user/admin」

在「網址格式」 =>「路徑」,定義 - 的網址應該是「漂亮的網址」。

示例: myhost/user/admin