Правило Yii2 UrlManager для строк - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь создать простой URL-адрес правила и не могу заставить его работать.

Я хочу следующее правило:

mysite.com/[username]

, чтобы перейти к

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

Возможно ли это?Сейчас у меня есть только одно правило, но мне нужно сохранить и это

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

1 Ответ

0 голосов
/ 23 февраля 2019

Если я правильно понимаю, вы говорите, что у вас есть существующая страница 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/<id:\w+>' => 'kit/page'.

Примечание: \w+соответствует любому символу слова (равному [a-zA-Z0-9_]), поэтому, если ваше имя пользователя может иметь любой другой разрешенный символ, возможно, вам придется обновить шаблон , например, чтобы разрешить -, вам следует изменить правило на '<id:[\w\-]+>' => 'kit/page'

...