301 редирект внутренних страниц. Как правильно?

(Ответов: 8, Просмотров: 2605)
  1. Дипломник Аватар для Mohatma
    • Регистрация: 29.01.2013
    • Сообщений: 124
    • Репутация: 8
    Хорошего всем дня...

    В ближайшее время буду переделывать основное меню навигации и нужно будет раскидать материалы по новым категориям.

    Подскажите, как правильно прописывается 301 редирект для внутренних страниц?


    Redirect 301 http://mydomen.ru/page1.html http://mydomen.ru/page2.html - так?
    • 0
  2. Дипломник Аватар для Removal Of Brain
    • Регистрация: 23.04.2012
    • Сообщений: 99
    • Репутация: 25
    Цитата Сообщение от Mohatma Посмотреть сообщение
    Лучше так
    Код:
    Redirect 301 /page1.html http://mydomen.ru/page2.html
    • 1

    Спасибо сказали:

    Mohatma(26.05.2013),
  3. Дипломник Аватар для _Серега_
    • Регистрация: 11.02.2013
    • Сообщений: 125
    • Репутация: 32
    • Webmoney BL: ?
    Можно так прям в движке, если на php:
    if (strcmp($_SERVER['REQUEST_URI'],"/page1.html")) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://mydomen.ru/page2.html");
    exit();
    }
    • 1

    Спасибо сказали:

    Mohatma(27.05.2013),
  4. Дипломник Аватар для Mohatma
    • Регистрация: 29.01.2013
    • Сообщений: 124
    • Репутация: 8
    _Серега_, Думаю мне проще будет через 301
    • 0
  5. Дипломник Аватар для _Серега_
    • Регистрация: 11.02.2013
    • Сообщений: 125
    • Репутация: 32
    • Webmoney BL: ?
    Да не проще!

    PHP код:
    //Создаешь массив страниц подлежащих переадресации:
    $pagesToRedir = array('/page1.html'=>'/page2.html','/page3.html'=>'/page4.html'); 
    //ключ массива исходная страница, значение ключа куда надо и пробегаем циклом
    foreach ($pagesToRedir as $k=>$v) {
    if (
    strcmp($_SERVER['REQUEST_URI'],$k)) {
     
    header("HTTP/1.1 301 Moved Permanently");
     
    header("Location: http://mydomen.ru".$v);
     exit();
     }

    И все... делайте массив хоть из тысяч страниц, переадресовывайте, с незначительной переделкой можно брать uri из базы. Код вставить надо повыше в индексный файл до начала вывода.
    Последний раз редактировалось _Серега_; 28.05.2013 в 10:58.
    • 0
  6. Дипломник Аватар для Removal Of Brain
    • Регистрация: 23.04.2012
    • Сообщений: 99
    • Репутация: 25
    _Серега_,
    Ну там скорей всего страницы по маске редиректить будут. Да и скорость вашего решения, при большом количестве страниц явно проигрывает
    • 0
  7. Дипломник Аватар для _Серега_
    • Регистрация: 11.02.2013
    • Сообщений: 125
    • Репутация: 32
    • Webmoney BL: ?
    согласен решение лобовое неэлегантное, зато воплощается без регулярных выражений, все понятно, бери и пользуйся. Не думаю что падение производительности будет критично для обычных сайтов из 500-1000 страниц. Тем более что наткнуться надо всего на 1 ключ в массиве данных по заданному. У меня похожим образом реализовано на сайте с выбором из базы sitemap. Если запрашиваемой страницы нет в таблице выдается 404. Из этой же таблице генерируется sitemap.xml. Нормально все летает. Page Speed 97
    • 0
  8. Дипломник
    • Регистрация: 26.12.2011
    • Сообщений: 148
    • Репутация: 17
    Всегда делаю вот так в .htaccess:
    Redirect 301 /page1.html /page2.html
    • 0
  9. Дипломник Аватар для Removal Of Brain
    • Регистрация: 23.04.2012
    • Сообщений: 99
    • Репутация: 25
    Цитата Сообщение от _Серега_ Посмотреть сообщение
    согласен решение лобовое неэлегантное, зато воплощается без регулярных выражений, все понятно, бери и пользуйся. Не думаю что падение производительности будет критично для обычных сайтов из 500-1000 страниц. Тем более что наткнуться надо всего на 1 ключ в массиве данных по заданному. У меня похожим образом реализовано на сайте с выбором из базы sitemap. Если запрашиваемой страницы нет в таблице выдается 404. Из этой же таблице генерируется sitemap.xml. Нормально все летает. Page Speed 97
    Ну да. Особенно если убрать из вашего кода перебор через цикл, а реализовать так.
    Код:
    //Создаешь массив страниц подлежащих переадресации:
    $pagesToRedir = array('/page1.html'=>'/page2.html','/page3.html'=>'/page4.html'); 
    $key = explode('?',$_SERVER['REQUEST_URI']);
    $key = $key[0];
    if(isset($pagesToRedir[$key])){
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://mydomen.ru".$pagesToRedir[$key]);
    exit();
    }
    • 1

    Спасибо сказали:

    _Серега_(28.05.2013),

Похожие темы

Темы Раздел Ответов Последний пост
Как правильно сделать редирект внутренних страниц?
Web программирование 16 22.03.2012 15:58
Как правильно сделать редирект внутренних страниц?
Вопросы от новичков 3 17.03.2012 15:33
Ссылки с главных или внутренних страниц для повышения тиц?
Поисковые системы 10 11.11.2011 16:51
Бесплатная анлимитная проверка внутренних страниц на PR
Софт, скрипты, сервисы 4 19.09.2011 04:00
PR для внутренних страниц
Google 32 02.08.2011 14:38

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры