Как настроить UrlManager в Yii2 с одинаковым названием параметра для разных rotes?

В Yii2 для настройки UrlManager, чтобы иметь одинаковое название параметра для разных роутов, нужно использовать функцию addRules() класса UrlManager для задания правил маршрутизации.

Правила маршрутизации описываются в файле конфигурации приложения, обычно в файле config/web.php. В этом файле вы найдете массив 'components', в котором должен быть задан компонент UrlManager.

Вот пример, как можно настроить UrlManager с одинаковым названием параметра для разных роутов:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        // Правила маршрутизации
        [
            'pattern' => 'page/<id:d+>',
            'route' => 'site/page',
        ],
        [
            'pattern' => 'post/<id:d+>',
            'route' => 'site/post',
        ],
        // ... добавьте здесь другие правила на основе параметра <id>
    ],
],

В приведенном примере мы настраиваем два правила маршрутизации: page/<id:d+> и post/<id:d+>. Оба правила имеют одинаковое имя параметра <id>, но разные значения <id> в URL будут маршрутизироваться по разным контроллерам и действиям.

В случае, когда пользователь запрашивает URL вида page/123, Yii2 будет выбирать контроллер site и действие page, а <id> будет передано в качестве аргумента методу actionPage() в контроллере site.

Аналогично, при запросе URL вида post/456, Yii2 будет выбирать контроллер site и действие post, а <id> будет передано в качестве аргумента методу actionPost() в контроллере site.

Вы можете создавать сколько угодно правил маршрутизации и использовать одинаковое название параметра для разных роутов.