Как сделать 301 редирект домена (страницы) на другой домен (страницу)
Опубликовано: 01.09.2018
Редирект (redirect) — это автоматическое перенаправление (переадресация) пользователя с одной страницы сайта на другую страницу. Редирект может осуществляться в пределах одного домена, то есть, к примеру, с главной страницы на внутренние или с внутренних страниц на главную. Но чаще всего, происходит перенаправление (редирект) с домена на домен, то есть на другой сайт.
Цифра 301 означает код, который возвращает веб-сервер в ответ на запрос браузера, когда он запрашивает какую-либо страницу. Обычно, он отдает код 200 (OK) – страница существует, и она немедленно отображается в окне браузера. А вот 301 означает, что страница перемещена перманентно, то есть навсегда. В ответе сервера также указывается новое местоположение перемещенной страницы.
Как сделать 301 редирект сайта
301 редирект помогает переехать на другой домен
В каких случаях необходим серверный редирект?
В своей работе мне приходиться сталкиваться с типичной ситуацией: клиент создал новый сайт, под него арендовал новый домен с более красивым и коротким именем. Кстати, а вы читали статью как выбрать доменное имя правильно?
Как настроить переадресацию домена? | REG.RU Видеосправка
Затем он перенес туда весь контент со старого сайта. Что дальше? Дальше моя задача состоит в следующем: оставить в поиске только один новый сайт, а со старого перенести его «вес», со всем внешним ссылочным, тИЦ, PR, позициями и трафиком. То есть, попросту говоря, — « склеить » старый сайт с новым. Для этого и нужно сделать редирект .
Правильный редирект — он какой?
Вообще говоря, способов сделать и настроить редирект очень много. В этой статье я опишу только все наиболее простые и популярные методы. Вы можете выбрать подходящий именно вам способ сделать редирект для сайта (домена), а также для страниц (ссылок).
Я сознательно не буду упоминать варианты использования мета-тегов:
< meta http - equiv = "refresh" content = "0;URL=http://newdomain.com" / > |
Или скриптов JavaScript, так как такие операции могут быть приняты за попытку применить дорвей.
Самым правильным перенаправлением считается серверный редирект , когда браузеру и поисковому роботу отдается код 301. Бывают еще редкие случаи употребления файла robots.txt. Но я вам не рекомендую использовать его в этих целях. Всё-таки robots.txt предназначен для других задач.
Редирект через htaccess
.htaccess позволяет прописать редиректы
Файл .htaccess является единственным способом изменять настройки веб-сервера под нужды вебмастера. Это просто файл, размещаемый обычно в корне сайта, в котором прописываются директивы, управляющие поведением сервера.
Именно в файле .htaccess предстоит разместить код, который будет перенаправлять пользователя на другую страницу и/или на другой домен. Скрипты редиректов, показанные ниже, необходимо размещать в этом файле. Он должен находиться в корневой папке сайта, и обязательно не забудьте поставить точку (.) перед именем файла.
Случай №1: изменение имени файла
Вы поменяли название файла old_file.html на new_file.html. Чтобы автоматически перенаправить посетителя с одного файла на другой, запишем в файле .htaccess следующую директиву:
redirect 301 / old_file . html http : //www.example.com/new_file.html |
Случай №2: Замена расширения файла
Вы изменили расширение файла с file.html на file.php. В этом случае пишем:
redirect 301 / file . html http : //www.example.com/file.php |
Как видите, код практически идентичен случаю №1.
Случай №3: Редирект с домена с www на домен без www
Самый, пожалуй, распространенный случай, когда необходимо «склеить» два домена: www.example.com и example.com. Если этого не сделать с самого начала, то может сложиться ситуация, когда поисковая система проиндексирует оба сайта (хотя физически это будет один и тот же сайт). Такого допускать ни в коем случае нельзя. Сразу определяйтесь какого вида домен вы хотите видеть в выдаче: с префиксом www или без него.
Пример кода, когда хотите оставить домен без www:
RewriteEngine on RewriteCond % { HTTP_HOST } ^ www . example . com RewriteRule ^ ( . * ) $ http : //example.com/$1 [R=301,L] |
Пример кода, когда хотите оставить домен c www:
RewriteEngine On RewriteCond % { HTTP_HOST } ^ example . com RewriteRule ( . * ) http : //www.example.com/$1 [R=301,L] |
Случай №4: Избавляемся от префикса index.php после слэш (/)
Если вам не нравится URL вида http://example.com/index.php, то способ избавиться от префикса index.php следующий:
RewriteCond % { THE_REQUEST } ^ [ A - Z ] { 3 , 9 } \ / index \ . php \ HTTP / RewriteRule ^ index \ . php $ http : //example.com/ [R=301,L] |
Соответственно, если расширение .html, то меняем index.php на index.html