Yii настройка отображения параметров URL - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь изменить способ, которым Yii показывает URL для моей страницы "продукта". Теперь это показывает это:

   localhost/~antonio/project/?r=site/product&id=HXW1410D260D0TB013&language=en

Или с помощью urlFormat = path

   localhost/~antonio/project/en/product/id/HXW1410D260D0TB013

Мне нужно, чтобы URL был похож на это:

   localhost/~antonio/project/en/product/HXW1410D260D0TB013

Я посмотрел документы Yii, но не могу найти способ сделать это.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Добавьте следующее правило в ваш массив правил main.php:

'product/<id:[A-Z0-9]+>'=>'site/product',

, чтобы у вас было что-то вроде

'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false,
        'rules' => array(
                'product/<id:[A-Z0-9]+>'=>'site/product',
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
         ),
  ),

, по существу, формат правила следующий:

'product/<id:[A-Z0-9]+>'=>'site/product',

Термины в <> означают, что вы передаете переменную, поэтому

<id:[A-Z0-9]+>

означает, что вы передаете $ _GET ['id'], если регулярное выражение совпадает (если оно содержит только заглавные буквы ичисла).

Таким образом, вышеприведенное правило означает, что если URL соответствует product / что-то, отправьте его на сайт / product и передайте «что-то» как параметр $ _GET с именем id.

Hopeэто проясняет.

0 голосов
/ 02 марта 2012

Для этого перейдите к файлу main.php в папке конфигурации и раскомментируйте следующее, чтобы включить URL в формате path :

'urlManager' => array(
    'urlFormat' => 'path',
    'rules' => array(
        '<controller:\w+>/<id:\d+>' => '<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ),
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...