Не работает простое правило для UrlManager
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Не работает простое правило для UrlManager
Всем привет.
Хочу чтобы при наборе site.ru/a?b был контроллер site с action=index
Пишу в rules 'a?b'=>array('site/index') и ввожу site.ru/a?b
Ошибка: Unable to resolve the request "a". Экранирую знак вопроса: 'a\?b'=>array('site/index')
Та же ошибка.
Если убираю b, т.е. в правиле 'a?'=>array('site/index') и вводить site.ru/a? - все работает.
Подскажите, как обработать знак вопроса.
Хочу чтобы при наборе site.ru/a?b был контроллер site с action=index
Пишу в rules 'a?b'=>array('site/index') и ввожу site.ru/a?b
Ошибка: Unable to resolve the request "a". Экранирую знак вопроса: 'a\?b'=>array('site/index')
Та же ошибка.
Если убираю b, т.е. в правиле 'a?'=>array('site/index') и вводить site.ru/a? - все работает.
Подскажите, как обработать знак вопроса.
- sergebezborodov
- Сообщения: 133
- Зарегистрирован: 2010.06.10, 19:53
- Откуда: Dnepropetrovsk-Sevastopol, UA
- Контактная информация:
Re: Не работает простое правило для UrlManager
в урле знак вопроса означает начало GET параметров
слабо представляю как это связать с таким роутингом
слабо представляю как это связать с таким роутингом
A passion to perform
http://sergebezborodov.com
http://sergebezborodov.com
Re: Не работает простое правило для UrlManager
'a'=>array('site/index')
а в контроллере обрабатывать $_GET['b']
а в контроллере обрабатывать $_GET['b']
...
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Не работает простое правило для UrlManager
Спасибо, как вариант подойдет. Можно, конечно и свой класс написать.
На старом сайте были адреса, вида:
page.php?name=mypage
cat.php?name=mycat
И обрабатывались файлами page.php и cat.php, а на новом сайте (на Yii) хотелось бы написать что-то типа:
На старом сайте были адреса, вида:
page.php?name=mypage
cat.php?name=mycat
И обрабатывались файлами page.php и cat.php, а на новом сайте (на Yii) хотелось бы написать что-то типа:
Код: Выделить всё
'rules'=>array(
'page.php?name=<name:\w>'=>array('page/index'),
)
Re: Не работает простое правило для UrlManager
Эти адреса
очень логично трансформируются в адреса
Соответственно page и cat - контроллеры, а mypage и mycat - параметры, которые с помощью правил urlManager будут передаваться в экшены вышеупомянутых контроллеров.
Если же вам хочется сохранить ссылки оригинальными в целях SEO, тогда в правилах urlManager можно прописать page.php как синоним для контроллера page, а cat.php - синоним для контроллера cat. А name будет параметром в экшене index в обоих контроллерах
Код: Выделить всё
page.php?name=mypage
cat.php?name=mycat
Код: Выделить всё
page/mypage
cat/mycat
Если же вам хочется сохранить ссылки оригинальными в целях SEO, тогда в правилах urlManager можно прописать page.php как синоним для контроллера page, а cat.php - синоним для контроллера cat. А name будет параметром в экшене index в обоих контроллерах
Yii Jabber Conference: yii@conference.jabber.ru
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Не работает простое правило для UrlManager
Да, именно сохранить адреса. Подскажите, пожалуйста, про то, как сделать синонимы или хотя бы скажите, где конкретно про это почитать.R3D3 писал(а): Если же вам хочется сохранить ссылки оригинальными в целях SEO, тогда в правилах urlManager можно прописать page.php как синоним для контроллера page, а cat.php - синоним для контроллера cat. А name будет параметром в экшене index в обоих контроллерах
Re: Не работает простое правило для UrlManager
прочитайте про 301 редирект и передачу веса... и делайте с красивыми адресами - это, кстати, плюс с точки зрения СЕО.
Роботы довольно быстро реагируют на изменение УРЛ-ов. Только с СЕО-шниками согласуйте.
Роботы довольно быстро реагируют на изменение УРЛ-ов. Только с СЕО-шниками согласуйте.
...
- Антон Смирнов
- Сообщения: 284
- Зарегистрирован: 2011.07.08, 10:37
- Контактная информация:
Re: Не работает простое правило для UrlManager
Спасибо за совет, но хочется оставить старые адреса. Как реализовать синонимы с помощью Yii ?