【问题标题】:Yii2 UrlManager Rule For StringYii2 UrlManager 字符串规则
【发布时间】:2019-02-23 02:37:51
【问题描述】:

我正在尝试创建一个简单的规则 url,但我无法让它工作。

我想要以下规则:

mysite.com/[username]

mysite.com/kit/page?id=[username]

这可能吗?现在我只有一条规则,但我也需要遵守这条规则

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
    '' => 'site/index',
    ],
],

【问题讨论】:

    标签: yii2 yii2-urlmanager


    【解决方案1】:

    如果我理解正确,您是说您有一个现有页面 mysite.com/kit/page?id=[username],如果您在地址栏中输入 URL mysite.com/[username],则应显示该页面,如果是,则您可以更新 urlManager,如下所示

    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            '/' => 'site/index',
            '<id:\w+>' => 'kit/page'
        ]
    ]
    

    理想情况下,我会使用mysite.com/kit/[username] 来避免与任何其他与任何用户名匹配的控制器发生冲突并使用'kit/&lt;id:\w+&gt;' =&gt; 'kit/page'

    注意:\w+ 匹配任何单词字符(等于[a-zA-Z0-9_]),因此如果您的用户名可以包含任何其他字符,您可能需要更新pattern,例如允许-您应该将规则更改为'&lt;id:[\w\-]+&gt;' =&gt; 'kit/page'

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多