在urlManager Yii Framework中重写URL

时间:2014-05-05 11:06:57

标签: yii

在文件config main.php中:

'/my-acc/<slug:.*>' => 'user/profile/<slug>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

但是,当我创建URL时:

Yii::app()->controller->createUrl('user/profile', array('slug'=>'acc1');

返回结果mydomain/user/profile?slug=acc1,不包含mydomain/my-acc/acc1

有人能帮助我吗?

3 个答案:

答案 0 :(得分:0)

我认为这应该有效:

'my-acc/<slug>' => 'user/profile',

答案 1 :(得分:0)

urlManager rules

中试试
 'my-acc/<slug:[a-zA-Z0-9-_]+>' => 'user/profile',

根据需要修改正则表达式。

仅允许数字

 'my-acc/<slug:\d+>' => 'user/profile',

允许字符串(不含 - ,_)

 'my-acc/<slug:\w+>' => 'user/profile',

答案 2 :(得分:0)

如果以上两个答案有效,那么忽略,其他明智的尝试这个,

您是否在此路径中添加了.htaccess文件? ,移动根目录(.index.php文件存在)的.htacess文件

www

 - index.php
 - .htaccess

并在main.php文件中

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