someone
(198506)
September 23, 2009, 2:00am
1
Добрый день! Изиняюсь, но я начинающий в Yii.
Подскажите, пожалуйста, возможно ли настроить URL - генерируемые фреймворком на использование URL вида
../contacts/
../catalog/
../catalog/mebel/
../catalog/mebel/detskaya/
т.е. чтобы на конце присутствовал также слэш?
Ninja
(Dog)
September 23, 2009, 9:15am
2
array(
......
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'/',
),
),
);
п.с. не уверен, но возможно работает только с версии 1.0.9
Zolter
(Zolter Od)
September 26, 2009, 7:39am
3
Будет и в старых версиях работать. суфикс старая фигня
Ninja
(Dog)
September 27, 2009, 3:08pm
4
Старая-то старая. А вот конкретно по слэшу из обновления 1.0.9:
someone
(198506)
September 28, 2009, 5:14am
5
Возник такой еще вопрос. Возможно ли сделать следующий роут с делением на категории и суб-категории:
/transport/cars/prodazha/nissan/maxima_qx/items/91910921.htm
т.е. получается
/transport/ - контроллер
/cars/ - под-контроллер
/prodazha/ - продажа (тип объявления)
/nissan/ - марка авто
/maxima_qx/ - модель авто
/items/… / - соотв-ий ID объявления.
Интересует - возможно ли сконфигуировать таким образом urlManager? при этом если ссылаться на любой из суб-части URL - открываться должен по логике соответствующей экшн, например
/transport/cars/prodazha/ - откроет весь Листинг по продаже
Ninja
(Dog)
September 28, 2009, 6:25am
6
'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, если не попадёт под первый шаблон.
someone
(198506)
September 28, 2009, 8:09am
7
Отлично! Спасибо огромное за ответ!
lexand
(Dorogikh Alexander)
September 29, 2009, 2:03pm
8
а нужно ли при таком описании urlManager
править/создавать файл .htaccess c RewriteRule и если да то какое должно быть правило
у меня раньше были url вида
…domain/index.php?r=site/logout
добавил в конфиг
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'/',
),
),
и все перестало работать
тоесть на …domain/site/logout/
возвращает HTTP 404
freezy
(Freezy 88)
September 29, 2009, 6:07pm
9
А этот?
…domain/index.php /site/logout/
lexand
(Dorogikh Alexander)
September 30, 2009, 6:05am
10
этот работает при ‘showScriptName’=>true,
но вот при отсутсвии имени скрипта не работает ничего
Ninja
(Dog)
October 1, 2009, 6:44am
11
очевидно ведь что апач-то тоже надо сконфигурировать.
в корневой папке ( там де 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
что собственно даже описано в документации.
lexand
(Dorogikh Alexander)
October 1, 2009, 7:40am
12
спасибо огромное
я это почему то не заметил