Искать  
 
   
 
Повторяющиеся страницы с разным URL (как сделать 301 редирект)
Отправлено: 05 Май 2011 09:52 A.M.   [ Игнорировать ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

Поделитесь, пожалуйста, опытом, как вы решаете вопрос со страницами в индексе, у которых одинаковое содержание. Наример:
http://site_example.ru/catalog/trems/
http://site_example.ru/catalog/trems/?dgfkujh
http://site_example.ru/catalog/trems/?elerktnmlerkntertert

Не важно, как они оказались в индексе, может какие-то внешние ссылки, но суть в том, что у них одинаковое содержание.

Как сделать перенаправление на настоящую страницу http://site_example.ru/catalog/trems/ ?

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 05 Май 2011 10:52 A.M.   [ Игнорировать ]   [ # 1 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

В htaccess

RedirectMatch 301 ^/catalog/trems/^\?(.*)$ http://site_example.ru/$1 
Профиль
 
 
Отправлено: 06 Ноябрь 2011 12:08 A.M.   [ Игнорировать ]   [ # 2 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

Ребята, вопрос как ни странно, по-прежнему актуален.
Afgan, к сожалению предложенное решение не помогло (

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 06 Ноябрь 2011 12:29 A.M.   [ Игнорировать ]   [ # 3 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

Вот пример правильного редиректа

http://www.webliberty.ru/301-redirekt-ponyatie-i-nastroyka/?ym_playback=linkmap
переадресовывает на
http://www.webliberty.ru/301-redirekt-ponyatie-i-nastroyka/

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 14 Ноябрь 2011 05:52 P.M.   [ Игнорировать ]   [ # 4 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20
Станислав - 06 Ноябрь 2011 12:08 A.M.

Ребята, вопрос как ни странно, по-прежнему актуален.
Afgan, к сожалению предложенное решение не помогло (

Поскольку использование .htaccess для этой цели не всегда результативно (зависит от настроек сервера),

можно попробовать использовать простейший фильтр для отсева невалидных параметров строки запроса.

Сделать это лучше всего в index.php

Сразу после строки:

$query_str = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING': @getenv('QUERY_STRING'); 

нужно вписать код фильтра:

if ($query_str !== '')
{
    $keys 
= array('URL''ACT''css''trackback'); // Вписать все легальные параметры строки запроса.

    
$bad_key FALSE;

    
parse_str($query_str$params);

    foreach (
$params as $key => $val)
    
{
        
if ( ! in_array($key$keys))
        
{
            $bad_key 
TRUE;
            break;
        
}
    }

    
if ($bad_key !== FALSE)
    
{
       header
("HTTP/1.1 301 Moved Permanently");
       
header("Location: http://mysitename.ru".$path_info);
       exit;
    
}

Проверено на EE1.6.8

Профиль
 
 
Отправлено: 14 Ноябрь 2011 07:04 P.M.   [ Игнорировать ]   [ # 5 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

Afgan, решение работает. Спасибо огромное.

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль