Настройка Router

Добрый день! Изиняюсь, но я начинающий в Yii.

Подскажите, пожалуйста, возможно ли настроить URL - генерируемые фреймворком на использование URL вида

../contacts/

../catalog/

../catalog/mebel/

../catalog/mebel/detskaya/

т.е. чтобы на конце присутствовал также слэш?




array(

    ......

    'components'=>array(

        ......

        'urlManager'=>array(

            'urlFormat'=>'path',

            'showScriptName'=>false,

            'urlSuffix'=>'/',

        ),

    ),

);



п.с. не уверен, но возможно работает только с версии 1.0.9

Будет и в старых версиях работать. суфикс старая фигня

Старая-то старая. А вот конкретно по слэшу из обновления 1.0.9:

Возник такой еще вопрос. Возможно ли сделать следующий роут с делением на категории и суб-категории:

/transport/cars/prodazha/nissan/maxima_qx/items/91910921.htm

т.е. получается

/transport/ - контроллер

/cars/ - под-контроллер

/prodazha/ - продажа (тип объявления)

/nissan/ - марка авто

/maxima_qx/ - модель авто

/items/… / - соотв-ий ID объявления.

Интересует - возможно ли сконфигуировать таким образом urlManager? при этом если ссылаться на любой из суб-части URL - открываться должен по логике соответствующей экшн, например

/transport/cars/prodazha/ - откроет весь Листинг по продаже




                'urlManager'=>array(

                'urlFormat'=>'path',

                'showScriptName'=>false,

                'urlSuffix'=>'.htm',

                'rules'=>array(

                    'transport/cars/<action>/<brand>/<name>/*'=>'cars/<action>',

                    'transport/cars/*'=>'cars',

                    ),

                ),



/transport/cars/prodazha/nissan/maxima_qx/items/91910921.htm

пойдёт в экшн prodazha контроллера cars со следующими гет параметрами:




Array ( [action] => prodazha [brand] => nissan [name] => maxima_qx [items] => 91910921 )



А всё что будет после transport/cars/ будет отправляться в контроллер cars, если не попадёт под первый шаблон.

Отлично! Спасибо огромное за ответ!

а нужно ли при таком описании urlManager

править/создавать файл .htaccess c RewriteRule и если да то какое должно быть правило

у меня раньше были url вида

…domain/index.php?r=site/logout

добавил в конфиг

'components'=&gt;array(


    ......


    'urlManager'=&gt;array(


        'urlFormat'=&gt;'path',


        'showScriptName'=&gt;false,


        'urlSuffix'=&gt;'/',


    ),


),

и все перестало работать

тоесть на …domain/site/logout/

возвращает HTTP 404

А этот?

…domain/index.php/site/logout/

этот работает при ‘showScriptName’=>true,

но вот при отсутсвии имени скрипта не работает ничего

очевидно ведь что апач-то тоже надо сконфигурировать.

в корневой папке ( там де index.php лежит ) создаём файл

.htaccess

с содержимым:




Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on


# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d


# otherwise forward it to index.php

RewriteRule . index.php



что собственно даже описано в документации.

спасибо огромное

я это почему то не заметил