Я пытаюсь создать дружественные для поисковых систем URL-адреса для контроллера страниц, т.е. /about
вместо /pages/about
.
Я попытался настроить следующие маршруты (внизу маршрутов.php):
Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));
и
Router::connect('/:page', array('controller' => 'pages',
'action' => 'display'), array('pass' => array('page'), 'page' => '[a-z]+'));
Оба правильно соответствуют /about
, /support
и т. д. Однако произошел сбой, когда у меня была пара действие / метод.Например, /contact
должен направлять на PagesController->contact()
.Однако вышеприведенное перенаправило его на PagesController->display()
.
Должен быть способ выполнить это, не задавая конкретный маршрут для каждой страницы.Как я могу создать маршрут или набор маршрутов, которые:
- Подражает поведению маршрута по умолчанию для PagesController.Это маршруты для display (), если пара действий / методов не существует.
- Делает это с дружественным URL для поисковых систем.Это идет от root
/
, а не /pages
. - . Демонстрирует как
Router::connect()
, так и Html->link()
. Я проверил примеры в CakePHP Book и просмотрел другие вопросы, такие как CakePHP маршрутизация на страницах контроллера .Ничто, кажется, не удовлетворяет спецификации выше.