Как сделать 301 редирект: правильная переадресация

миниатюра записи Веб разработка
Что такое редирект? Зачем нужна переадресация с одних страниц на другие или перенаправление с одного домена на другой? Почему нужно склеивать при помощи 301 редиректа домен с префиксом www с таким же доменом без него. Как это сделать правильнее всего? Что означает файл .htaccess и где его найти? Ответы на все эти не самые простые вопросы ищите в этой статье.

Что такое 301 редирект?

Редирект (redirect) — это автоматическое перенаправление (переадресация) пользователя с одной страницы сайта на другую страницу. Редирект может осуществляться в пределах одного домена, то есть, к примеру, с главной страницы на внутренние или с внутренних страниц на главную. Но чаще всего, происходит перенаправление (редирект) с домена на домен, то есть на другой сайт.

Цифра 301 означает код, который возвращает веб-сервер в ответ на запрос браузера, когда он запрашивает какую-либо страницу. Обычно, он отдает код 200 (OK) – страница существует, и она немедленно отображается в окне браузера. А вот 301 означает, что страница перемещена перманентно, то есть навсегда. В ответе сервера также указывается новое местоположение перемещенной страницы.

301 редирект перенаправляет пользователя
301 редирект помогает переехать на другой домен

В каких случаях необходим серверный редирект?

В своей работе мне приходиться сталкиваться с типичной ситуацией: клиент создал новый сайт, под него арендовал новый домен с более красивым и коротким именем. Кстати, а вы читали статью как выбрать доменное имя правильно?
Затем он перенес туда весь контент со старого сайта. Что дальше? Дальше моя задача состоит в следующем: оставить в поиске только один новый сайт, а со старого перенести его «вес», со всем внешним ссылочным, тИЦ, PR, позициями и трафиком. То есть, попросту говоря, — «склеить» старый сайт с новым. Для этого и нужно сделать редирект.

Правильный редирект — он какой?

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

Я сознательно не буду упоминать варианты использования мета-тегов:

Или скриптов JavaScript, так как такие операции могут быть приняты за попытку применить дорвей.

Самым правильным перенаправлением считается серверный редирект, когда браузеру и поисковому роботу отдается код 301. Бывают еще редкие случаи употребления файла robots.txt. Но я вам не рекомендую использовать его в этих целях. Всё-таки robots.txt предназначен для других задач.

Редирект через htaccess

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

Файл .htaccess является единственным способом изменять настройки веб-сервера под нужды вебмастера. Это просто файл, размещаемый обычно в корне сайта, в котором прописываются директивы, управляющие поведением сервера.

Именно в файле .htaccess предстоит разместить код, который будет перенаправлять пользователя на другую страницу и/или на другой домен. Скрипты редиректов, показанные ниже, необходимо размещать в этом файле. Он должен находиться в корневой папке сайта, и обязательно не забудьте поставить точку (.) перед именем файла.

Случай №1: изменение имени файла

[adblock468x60]

Вы поменяли название файла old_file.html на new_file.html. Чтобы автоматически перенаправить посетителя с одного файла на другой, запишем в файле .htaccess следующую директиву:

Случай №2: Замена расширения файла

Вы изменили расширение файла с file.html на file.php. В этом случае пишем:

Как видите, код практически идентичен случаю №1.

Случай №3: Редирект с домена с www на домен без www

Самый, пожалуй, распространенный случай, когда необходимо «склеить» два домена: www.example.com и example.com. Если этого не сделать с самого начала, то может сложиться ситуация, когда поисковая система проиндексирует оба сайта (хотя физически это будет один и тот же сайт). Такого допускать ни в коем случае нельзя. Сразу определяйтесь какого вида домен вы хотите видеть в выдаче: с префиксом www или без него.

Пример кода, когда хотите оставить домен без www:

Пример кода, когда хотите оставить домен c www:

Случай №4: Избавляемся от префикса index.php после слэш (/)

Если вам не нравится URL вида https://example.com/index.php, то способ избавиться от префикса index.php следующий:

Соответственно, если расширение .html, то меняем index.php на index.html

Оцените статью
Блог БИТ
Добавить комментарий для алексей Отменить ответ
  1. Sorokin Vladimir

    Здравствуйте! Статья выше всяких похвал – все очень доходчиво! Но хочу уточнить пару моментов. Мне нужно перевести небольшой сайтик, на сорок с лишним страниц, с файлового на движок. Естественно все урлы страниц меняются. Написать 40 строчек в.htaccess не сложно – сделаю. А, теперь главное. Редирект остается «пожизненно», или через какое-то (какое?) время его надо убирать? И если «пожизненно» то тогда может не исправлять все ссылки внутри сайта (меню, перелинковка и тд все возьмет на себя 301-й) или все-таки переписать? Спасибо!

    1. Конечно, при редиректе «вес» старой страницы переносится на новый урл, так что можно оставить и так. На этом сайте, например, часть ссылок ведет на старые страницы, которых уже нет. Я перенаправил их на новые в .htaccess, при этом их «вес» нормально перешел на новые страницы. Так что можно ничего не менять.

    2. Игорь

      А если сервер не apache? А допустим на 1gb.ru с поддержкой asp… то тогда как?

  2. Андрей

    Отличная статья, полезная и грамотная. Спасибо.

  3. алексей

    я уже 3 месяца читтаю одно и тоже, но сделать ничего не смог. Помогите настроить стр. пример=
    http://blogbit.net/web-development.html
    на
    http://blogbit.net
    Я уже перепробовал все, но неполучается.

    1. Не за что

      redirect 301 /web-development.html http://www.blogbit.net/index.php

      или

      redirect 301 /web-development.html http://www.blogbit.net/index.html

  4. Денис

    Подскажите пожалуйста ! Какой лучше применить редирект, нужно чтобы страница выскакивала при запросе в поисковике и заходя на нее, открывалась другая страница! И чтобы первая страница не теряла вес! Спасибо

  5. gqgwywe

    Спасибо за информацию!!!!!