2013-07-14 3 views
0

У меня есть эти старые адреса:Как 301 перенаправить старую строку запроса?

/site/index?cat=likes&top=today 
/site/index?cat=likes&top=month 
/tag/TagName/index?cat=likes&top=today 

cat=likes Я изменил к cat=popular

Теперь я получаю 404-х. Как перенаправить все вызовы из cat = нравится cat = популярно?

Примечание: У меня уже есть перенаправление, которое украшает URL.

/site/index?cat=popular&top=today

уже перенаправлены на

/popular-today

+0

Если вы считаете, что это вопрос Yii, вы должны добавить часть правил вашего url. Если нет, вы должны удалить тег Yii. –

ответ

0

Проверьте кастрированный баран ГЭТ переменной cat устанавливается значение 'любит', вы можете проверить это в вашем site/index или tag/tagName. После этого вы можете перенаправить с помощью PHP header(). Что-то вроде этого:

public function actionIndex() 
{   
    if ($_GET['cat'] == 'likes') 
    { 
     header('Location: /site/index?cat=popular', false, 301); 
    } 
    ... 
} 

Вы также можете использовать свой украшенный URL.

public function actionIndex() 
{   
    if ($_GET['cat'] == 'likes') 
    { 
     header('Location: /popular-today', false, 301); 
    } 
    ... 
} 
+0

В настоящее время у меня есть эта запись в моем .htaccess и отлично работает: 'RedirectMatch 301 /tag/(.*)/likes-(today|week|month|year)/tag/$ 1/popular- $ 2 RedirectMatch 301 /tag/(.*)/likes-(new|all)/tag/$ 1/new RedirectMatch 301 /tag/(.*)/likes-30/tag/$ 1/популярный месяц RedirectMatch 301/likes- (сегодня | неделя | месяц | год)/популярный- $ 1' Я считаю, что ваше предложение будет работать, но я ищу больше для более чистого способа сделать это вне кода. Итак, я хочу знать правильные записи .htaccess для перенаправления указанной строки запроса. – Ross

+0

это, вероятно, лучшее решение, хотя это не имеет большого отношения к Yii. – deacs

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