Главное Авторские колонки Вакансии Образование
365 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как настроить 301 редирект с http на https-версию сайта

Необходимость в редиректе возникает по разным причинам. Обычно такая настройка нужна при переносе веб-ресурса на новый адрес или при изменении URL страниц. В статье вы узнаете, как правильно сделать постоянный 301-редирект.
Мнение автора может не совпадать с мнением редакции

Время от времени у владельцев сайтов появляется необходимость настроить редирект. Так называется процесс, при котором пользователей автоматически перебрасывает с одной страницы на другую. Необходимость в редиректе возникает по разным причинам. Обычно такая настройка нужна при переносе веб-ресурса на новый адрес или при изменении URL страниц. В статье вы узнаете, как правильно сделать постоянный 301-редирект.

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

Редирект — перенаправление посетителей веб-ресурса с устаревших страниц на действующие, например, с http-версий на https. Вы можете выполнять настройки как на сервере, так и прямо на сайте. Лучше выбирайте первый вариант, т.к серверные директивы обрабатываются быстрее php-кода.


Редирект, когда ты зашел на устаревшую страницу

Существует два наиболее известных редиректа, и один из них — Permanent Redirect 301. У него несколько «имен», в том числе «301 редирект» и «постоянный редирект». При переадресации браузер отправляет на сервер определенный запрос и получает специальный ответ. После редиректа пользователи не могут попасть на страницу по прежнему адресу, т. к. он становится неактуальным. Вес старой страницы переходит на новую версию.

Зачем нужен редирект

Ошибки в работе с редиректом дорого обходятся владельцу веб-ресурса — при переносе контента или изменении домена сайт «падет» в выдаче. В остальных случаях поисковые системы понимают, что перенаправление выполняется корректно. При этом выше вероятность сохранения позиций при смене урла.


Хотел сделать правильно, но получилось...

Для безопасной передачи данных браузеры и серверы используютSSL — специальный протокол. Проверьте, установлен ли у вас SSL-сертификат. Если нет, то ссылки, которые ведут на страницы без SSL, могут блокироваться браузерами.

Чтобы получить сертификат для каждого доменного имени, зайдите на свой хостинг, откройте раздел «Домены» и установите SSL. Протокол сайта поменяется с HTTP на HTTPS. Теперь настройте редирект, иначе одинаковые УРЛы, т. е. с http и https, будут идентифицироваться поисковыми системами как дубли, а это может вредить индексации.

Как настроить редирект через файл .htaccess

Чтобы корректно настроить перенаправление с http на https, откройте .htaccess в корневой папке сайта. Если файла нет, то создайте его. Перед htaccess обязательно должна быть точка, иначе все усилия окажутся напрасными. Пропишите в файле код:

RewriteEngine OnRewriteCond %{SERVER_PORT} !^443$RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L].

Это может не сработать. Попробуйте по-другому:

RewriteEngine OnRewriteCond %{HTTPS} =offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L].

Если попытки оказались неудачными и вы столкнулись с циклической переадресацией, то воспользуйтесь таким вариантом:

RewriteEngine OnRewriteCond %{HTTPS} offRewriteCond %{HTTP:X-Forwarded-Proto} !httpsRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

либо

RewriteEngine OnRewriteCond %{ENV:HTTPS} !onRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301].

Обратите внимание: указывать доменное имя не нужно.


Настраиваешь редирект

Если все сделано правильно, то и пользователи, и поисковики будут попадать на https-версии страниц. Для проверки введите в адресной строке названиедомена.ru. Если вас мгновенно перебрасывает на https://названиедомена.ru, то все в порядке.

Иногда после перехода на протокол HTTPS могут «сломаться» шрифты и картинки, путь к которым разработчик прописал вместе с доменом и протоколом. Если вы столкнулись с этой проблемой, то проверьте коды страниц. В них содержатся надписи с установкой шрифта, которые выглядят следующим образом:

Вместо http пропишите https. У вас получится:

Либо можно прописывать путь вообще без протокола (), тогда браузер будет подгружать ресурс по тому протоколу, по которому идет обращение к сайту.

Как склеить зеркала сайта

Сайты http://sitename и http://www.sitename воспринимаются поисковыми системами как разные, а ссылки ведут на один и тот же веб-ресурс. В результате тот или иной «близнец» определяется поисковиками как дубль, что негативно влияет на продвижение. Чтобы избежать такой ситуации, склейте зеркала сайта.


Вот их двое, а надо-то одну

Если поисковики в первую очередь проиндексировали сайт с www, то главным зеркалом станет УРЛ вида www.site.ru. В таком случае пропишите в .htaccess:

RewriteCond %{HTTP_HOST} !^www.name.site.ru$RewriteRule ^(.*)$ http://www.name.site.ru/$1 [L,R=301]

Возможна и обратная ситуация, когда поисковые системы сначала индексируют версию без www. Тогда надо добавить:

RewriteCond %{HTTP_HOST} ^www.(.+) [NC]RewriteRule .* http://%1/$0 [L,R=301]

Как настроить постраничный редирект

Если вам нужен редирект для всех страниц, кроме одной, то пропишите в .htaccess:

RewriteEngine OnRewriteCond %{HTTPS} =offRewriteCond %{REQUEST_URI} !^/page.phpRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Чтобы настроить редирект на https для одной страницы, добавьте в файл:

RewriteEngine OnRewriteCond %{HTTPS} =offRewriteCond %{REQUEST_URI} =/page.phpRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Как изменить домен

Чтобы перейти на новый домен и при этом не потерять SEO-позиции, пропишите в .htaccess такую комбинацию:

RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC]RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC]RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]


Забираем с собой SEO-позиции!

Как сделать редирект для УРЛов с параметрами и без

Сначала рассмотрим, как настроить переадресацию без параметров. Чтобы перенести содержимое страницы и сохранить SEO-позиции, добавьте в .htaccess такую комбинацию:

RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]

Перейдем к настройке с параметрами. Например, вам нужен редирект для УРЛа >http://name.site/articles.php?section=1, в котором section=1 — это параметр. Чтобы настроить переадресацию, пропишите следующее:

RewriteCond %{QUERY_STRING} section=1RewriteRule ^index.php http://name.site/articles.php? [R=301,L]

Как настроить переадресацию с index.php на главную

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

RewriteCond %{REQUEST_URI} !?RewriteCond %{REQUEST_URI} !&RewriteCond %{REQUEST_URI} !=RewriteCond %{REQUEST_URI} !.RewriteCond %{REQUEST_URI} ![^/]$RewriteRule ^(.*)/$ /$1 [R=301,L]

Существует и другой вариант:

RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} ^(.+)/$RewriteRule ^(.+)/$ /$1 [R=301,L]

Как настроить редирект со страниц без слеша на адреса со слешем

Чтобы сделать такой редирект для всего сайта, добавьте в .htaccess следующее:

RewriteCond %{REQUEST_URI} !?RewriteCond %{REQUEST_URI} !&RewriteCond %{REQUEST_URI} !=RewriteCond %{REQUEST_URI} !.RewriteCond %{REQUEST_URI} !/$RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

Как сделать редирект для Nginx

Если в качестве веб-сервера используется nginx, то директивы из файла .htaccess не будут обрабатываться. Поэтому для настройки редиректов следует добавить соответствующие правила в файл с конфигурацией интересующего вас веб-сайта.

Переадресация с www на без www:

server {#...if($host~ * www.(.*)) {set $host_without_www $1;rewrite ^ (.*) $ http: //$host_without_www$1 permanent;}#...}

Еще один способ — добавить отдельную секцию server для www-поддомена:

server {listen 443;server_name www.site.ru;return 301 https://site.ru$request_uri;ssl_certificate /путь/к/сертификату.cer;ssl_certificate_key /путь/к/ключу.key;}

Переадресация с без www на c www:

server {#...if($host~ * ^ [ ^ .] + .[ ^ .] + $) {rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;}#...}

Перезапустите nginx.

PHP редирект со старой страницы на новую

if($_SERVER[’REQUEST_URI’] == ’/old-url/’){header("HTTP/1.1 301 Moved Permanently");header("Location: https://abcname.net/new-url/");exit();}

здесь $_SERVER[’REQUEST_URI’] - адрес (URL) текущей страницы без названия домена.

Постраничные редиректы

Приведем еще примеры настройки постраничной переадресации 301.

Редирект со страницы page1.html на страницу page2.html: rewrite /старый__URL/ /новый_URL/ permanent; в секции сервер от нужного сайта/домена.

301 Redirect для разных панелей управления хостингом

Рассмотрим настройки для разных панелей управления.

Cpanel

Зайдите в «Домены» и выберите «Перенаправления».


Перед вами появится окно. В нем нужно сделать следующее:

1. В строке «Тип» выбрать «Постоянный 301».. 2. Из списка «https://www» выберите домен, условно — primer.ru.. 3. В строке «Перенаправляет на» пропишите адрес http://primer.ru/.. 4. Откройте блок «Перенаправление www» и выберите «Перенаправлять только с www».. 5. Кликните «Добавить», чтобы сохранить изменения.


ISPmanager

Чтобы вносить изменения, используйте nginx.config либо .htaccess. Панель оснащена механизмом переадресации. Чтобы сделать редирект на https, зайдите в раздел «WWW-домены» и снимите галочку напротив соответствующего пункта.


Beget

Редирект на https подключается переключением галочки в настройках:


Редирект и популярные движки

Рассмотрим особенности переадресации для известных CMS.

WordPress

У этой популярной CMS множество плагинов для настройки постоянного редиректа — Redirection, Quick Page, Safe Redirect Manager и др. Разберемся, как выполнить переадресацию через Redirection. Чтобы его настроить, зайдите в консоль сайта и выберите «Инструменты» либо откройте раздел плагинов. Заполните два поля — Source URL и Target URL. В первом укажите старый адрес, а во втором пропишите новый — с www или без него.


Также вы можете внести правки в .htaccess, который находится в разделе управления хостингом. Для подключения воспользуйтесь FTP-клиентом.

«Битрикс»

В Битрикс есть встроенная функция для создания редиректа (переадресации) на PHP — это функция LocalRedirect. Также вы можете воспользоваться готовым модулем, котороый позволит управлять редиректами через админ-панель.


Редирект настроен!

Как автоматически создать код

Если у вас не получается самостоятельно прописать код, обратитесь к специалистам техподдержки либо воспользуйтесь онлайн-генераторами.

Чтобы поисковые системы понимали, что два разных адреса относятся к одному веб-ресурсу, нужен постоянный редирект. 301 Redirect — это полезный инструмент, благодаря которому вы сможете оптимизировать сайт и исправить многие ошибки. Следуйте нашей инструкции, и у вас все получится.

Rubix в соцсетях: Telegram | ВКонтакте

+5
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.