Php 如何在yii中为模块创建漂亮的url

Php 如何在yii中为模块创建漂亮的url,php,yii,yii-url-manager,Php,Yii,Yii Url Manager,我已经搜索了很多,尝试了很多,但没有运气。我已经提到这一点。但这并没有解决我的问题。我在yii(yii 2)中安装了一个用户模块。我有用户配置文件url,如 但我想让它像 我的意思是没有guid查询字符串参数。 我正在尝试像这样的url管理器 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false,

我已经搜索了很多,尝试了很多,但没有运气。我已经提到这一点。但这并没有解决我的问题。我在yii(yii 2)中安装了一个用户模块。我有用户配置文件url,如


但我想让它像


我的意思是没有guid查询字符串参数。 我正在尝试像这样的url管理器

'urlManager'=>array(
                'urlFormat'=>'path',
                'showScriptName'=>false,
                'rules'=>array(
           '<controller:\w+>/<action:\w+>/<guid:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
'urlManager'=>数组(
“urlFormat'=>“路径”,
'showScriptName'=>false,
'规则'=>数组(
'//'=>'/',
'/'=>'/',
),
如何可能?

在Yii中,
规则
参数(属性)的键必须是正则表达式模式。 如果我理解为true,那么您的url有一个结构控制器/操作(在我的例子中,
Eb
is子文件夹),因此您的规则必须是:

'urlManager'=>array(
   'urlFormat'=>'path',
   'showScriptName'=>false,
   'rules'=>array(
        '<controller:\w+>/<action:\w+>/<uguid:\w+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ),
)

结果必须给出您想要的结果。

您当前的url也可以使用

http://192.168.1.31/Eb/user/profile/uguid/ac0c4558-77fc-4896-9b30-f77afe4d81cd
您可以通过在urlmanager规则中添加以下行来删除控制器名称:

'/Eb/user/profile/<id:([0-9a-zA-Z_\-]+)' => 'Eb/user/profile/uguid/<id>'
”/Eb/user/profile/
'/Eb/user/profile/<id:([0-9a-zA-Z_\-]+)' => 'Eb/user/profile/uguid/<id>'