yii自定义网址重写

时间:2012-11-05 09:47:36

标签: yii

我开发了一个webapp,现在想用yii重写url,即时通讯使用yii。重写模式已启用并正在处理除yii之外的其他php项目。我当前的网址是/myhost/servers_cms/index.php?r=users/admin,但我想要/ myhost / servers_cms / users / admin。

这是我的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]

2 个答案:

答案 0 :(得分: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 / test *并访问用户/ admin控制器/操作

答案 1 :(得分: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”

如果控制器是“用户”且操作是“admin”,那么它将重定向到“example.com/user/admin”

'urlFormat'=&gt; 'path',定义 - 网址应该是“漂亮的网址”。

例如: 为myhost /用户/管理员

相关问题