2013-04-04 2 views
0

Я получил правила urlManager:юй - urlManager: как перенаправить маршрут к шаблону

... 
'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show', 
'/pages/<slug>' => 'page/page/show', 
... 

все в порядке. Когда я вхожу в адрес

/nasha-glavnaya-zagolovok 

открывает страницу мне нужно Но если я пытаюсь открыть веб-страницу

/pages/nasha-glavnaya-zagolovok 

также открывает страницу Мне нужно

Но содержание страничек одна и та же.

Как я могу перенаправить (с 301 заголовка) от маршрута в узор, если любое правило в urlManager mathced?

+0

Не удивляйтесь, что контент тот же, поскольку вы используете одно и то же действие контроллера ... Что вы хотите делать точно? – soju

+0

Я знал, что они такие же. Но как насчет того, чтобы выбрать последнее правило и не переходить к другим? – Miroff

ответ

0

я не могу дать вам полный ответ, но вы можете работать, чтобы он работал, как это ...

вы можете использовать правило, которое посылает запрос на действие, которое является работа только для перенаправления с помощью CController :: перенаправление()

заменить этот

'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show', 
'/pages/<slug>' => 'page/page/show', 

с этим

'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show', 
'/pages/<slug>' => 'site/redirect', 

и перенаправить пользователя в/$ slug в действии 'site/redirect'

Обновление: вы можете заставить его работать, написав новое правило URL-адреса, которое расширяет CBaseUrlRule, но не уверен, что вы хотите потратить время на это. если это единственное перенаправление, которое вы хотите сделать, то

+0

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

+0

Это новый, не имеющий отношения вопрос. Внутри действия, которое перенаправляет пользователя, вы можете делать все, что может сделать любое действие, проверить, существует ли статья, если она не генерирует исключение, иначе перенаправить пользователя на страницу статьи. Это добавит некоторые накладные расходы (которые вы, вероятно, даже не заметите, если это не очень крупный проект) – dimvic

+0

Я думаю, что действие - не хорошая идея. Потому что, способ действия я знаю, но как насчет urlManager, это очень хороший вопрос. – Miroff

Смежные вопросы