Подтвердите, что вы не робот
Челябинск
Например:
Челябинск
Москва
или
Выбрать автоматически
Челябинск
Москва
Екатеринбург
Тюмень
Санкт-Петербург
Новосибирск
Нижний Новгород
Казань
Омск
Самара
Ростов-на-Дону
Уфа
Красноярск
Пермь
Воронеж
Волгоград
Краснодар
Как настроить 301 редирект с HTTP на HTTPS-версию сайта

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

12.11.2020
#Создание сайтов
#Продвижение сайтов

Содержание:

  1. Что такое 301-редирект
  2. Для чего нужен редирект
  3. Настройка 301-редиректа через файл .htaccess
  4. 301 редирект для разных панелей управления хостингом
  5. Особенности редиректа для разных CMS
  6. Автоматическое создание кода

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

Чтобы пользователи могли найти сайт по новому адресу, нужно сделать так, чтобы их автоматически «перекидывало» со старого веб-ресурса на новый. Правильно сделать это можно с помощью постоянного редиректа, который называется 301 Redirect. Поговорим о нем подробнее.

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

Редирект — это операция, при которой посетитель сайта с неактуальной страницы попадает на действующую. Это может быть http и https либо адрес с www или без него. Редирект можно выполнять и в браузере, и на сервере. Последний вариант более предпочтителен, потому что не замедляет загрузку страниц.

2303963.gif

Принцип работы 301-редиректа: Ты туда не ходи, ты сюда ходи!

Самые популярные виды редиректа — Temporary Redirect 302 и Permanent Redirect 301. Последний имеет множество названий: «код состояния HTTP 301», «301-редирект», «301-редирект страницы», «постоянный редирект». При перманентной переадресации страницы сервер выдает специальный ответ на запрос браузера. После редиректа страница будет недоступна по старому адресу, а прежний URL станет недействительным: его вес перейдет на новый адрес.

Для чего нужен редирект

Очень важно правильно настроить редирект: в противном случае сайт потеряет позиции в поисковике после перемещения контента или изменения домена. Если все сделано верно, поисковик поймет, что страницу переместили правильно, сохранит ее позицию и вес в выдаче.

126f633143ba7a5cb18e518876963848.gif

Когда решил проблему с редиректом, но создал новые

Secure Sockets Layer (SSL) — протокол безопасности, использующийся серверами и браузерами для защиты передачи данных пользователей в интернете. Браузер может блокировать ссылки, ведущие на сайты без SSL.

Сертификат можно получить на своем хостинге в разделе «Домены» для каждого доменного имени.

После установки SSL ресурс перейдет с протокола http на https. Чтобы после этого пользователи попадали на ваш веб-ресурс, настройте 301-редирект.

Одинаковые URL (с http и https) без 301-редиректа будут распознаваться поисковиками как дубли. Из-за этого у сайта могут быть проблемы с индексацией.

Настройка 301-редиректа через файл .htaccess

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

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

или воспользуйтесь вторым вариантом (если первый вариант не поможет):

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

если все варианты не помогли и возникает циклическая переадресация, добавьте:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

или

RewriteEngine On

RewriteCond %{ENV:HTTPS} !on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Внимание! Не указывайте доменное имя.

Эта комбинация перенаправит на https всех пользователей и поисковые системы.

Теперь в адресной строке браузера нужно набрать названиедомена.ru и проверить, что вас за доли секунды перебросит на https://названиедомена.ru. Именно этого мы и добивались.

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

Если после перехода сайта на https изменились некоторые шрифты, нужно найти в коде каждой страницы надпись с установкой шрифта. Обычно в ней есть http, и проблема именно в этом:

<script src="http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>

Теперь замените http на https:

<script src="https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>

500x320_0xac120002_11429978021540470014.gif

Сложновато, но того стоит

Склейка зеркал сайта

Сайты http://названиесайта и http://www.названиесайта поисковики считают разными, хотя это адреса одного и того же ресурса.

Поисковики один сайт проиндексируют, а другой будет расцениваться как дубль, что может повлиять на его продвижение. Чтобы этого не случилось, нужно «склеить» сайты — прописать 301 редирект в .htaccess.

Если поисковые системы сначала проиндексировали версию с «с www», то главным зеркалом будет адрес вида www.site.ru, соответственно, в файл .htaccess нужно добавить редирект с адреса «без www» на адрес «с www».

Выглядит это так:

RewriteCond %{HTTP_HOST} !^www.name.site.ru$

RewriteRule ^(.*)$ http://www.name.site.ru/$1 [L,R=301]

Напротив, если поисковики проиндексировали первой версию «без www», нужна переадресация с адреса вида www.site.ru на site.ru и главным зеркалом будет адрес вида site.ru. В файл нужно прописать:

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]

RewriteRule .* http://%1/$0 [L,R=301]

Редирект постранично

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

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} !^/page.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Если нужно сделать редирект с http на https только одной страницы, например, page.php, вставьте в файл следующую конструкцию:

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} =/page.php

RewriteRule (.*) 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]

Переадресация для URL с параметрами и без них

Как сделать редирект для URL без параметров? Если нужно поменять URL страницы, т.е. перетащить информацию с одной страницы на другую без потери значений SEO, пропишите в файл .htaccess следующее:

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

Рассмотрим, как выполнить редирект с параметрами. Для примера возьмем URL http://name.site/articles.php?section=1, где параметр — это «section=1». Чтобы сделать редирект, пропишите такую конструкцию:

RewriteCond %{QUERY_STRING} section=1

RewriteRule ^index.php http://name.site/articles.php? [R=301,L]

Переадресация с index.php на главную

В случае, если главная страница недоступна по нескольким адресам одновременно, используйте следующую конструкцию:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/

RewriteRule ^index.php$ http://name.site/ [R=301,L]

Редирект со страниц со слешем на без слеша (для всего сайта)

Чтобы в файле .htaccess не было дублей, используйте конструкцию:

RewriteCond %{REQUEST_URI} !\?

RewriteCond %{REQUEST_URI} !\&

RewriteCond %{REQUEST_URI} !\=

RewriteCond %{REQUEST_URI} !\.

RewriteCond %{REQUEST_URI} ![^/]$

RewriteRule ^(.*)/$ /$1 [R=301,L]

Можно также применить более короткий вариант:

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^(.+)/$

RewriteRule ^(.+)/$ /$1 [R=301,L]

Редирект со страниц без слеша на слеш (для всего сайта)

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

RewriteCond %{REQUEST_URI} !\?

RewriteCond %{REQUEST_URI} !\&

RewriteCond %{REQUEST_URI} !\=

RewriteCond %{REQUEST_URI} !\.

RewriteCond %{REQUEST_URI} !\/$

RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

Постоянный редирект для Nginx

Обычно этот сервер используется на VPS-хостинге совместно с сервером Apache. В нем для настройки 301 редиректа добавляют строки в конфигурационный файл nginx.config в секции server.

 • C www на без www:

server {#...

if($host~ * www.(.*)) {

set $host_without_www $1;

rewrite ^ (.*) $ http: //$host_without_www$1 permanent;

}#...

}

• Без www на с www:

server {#...

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

}#...

}

Сохраните внесенные в файл изменения и перезапустите сервер.

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

Cpanel

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

redirekt-301-v-cpanel-1.jpg

В появившемся окне выполните следующее:

  • в строке «Тип» выберите «Постоянный 301»;
  • в строке «https://www» из списка выберите домен сайта (в качестве примера возьмем primer.ru);
  • в строке «Перенаправляет на» укажите для домена адрес http://primer.ru;
  • в блоке «Перенаправление www» выберите «Перенаправлять только с www»;
  • сохраните изменения, нажав на «Добавить».

redirekt-301-v-cpanel-kak-sdelat.jpg

ISPmanager

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

redirekt-301-v-ispmanager-kak-sdelat.gif

Beget

Настроить 301 редирект инструментами панели управления нельзя. Хостинг управляется с сервера Apache, поэтому редирект можно настроить с помощью файла .htaccess.

redirekt-301-v-beget-kak-sdelat2.jpg

Особенности редиректа для популярных CMS

WordPress

WordPress — одна из самых популярных CMS. Она имеет десятки плагинов для настройки постоянного редиректа, например:

  • Redirection;
  • Simple 301 Redirects;
  • Quick Page;
  • SEO Redirection;
  • Safe Redirect Manager.

В качестве примера разберем редирект через плагин Redirection. Он настраивается через консоль сайта во вкладке «Инструменты» или через раздел плагинов. Для переадресации нужно заполнить 2 поля: Source URL и Target URL. В первой графе внесите старый адрес, а во второй — новый с www или без него.

redirekt-301-v-wordpress-kak-sdelat.jpg

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

Битрикс

Чтобы «перебросить» пользователя на новую страницу, отредактируйте файл .htaccess и внесите такой редирект:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]

RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]

redirekt-301-v-bitrix-kak-sdelat.jpg

Автоматическое создание кода

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

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

ed5a85c633ca6cead494863c5a38ca72319f77b9_hq.gif

Помните, что с великой силой приходит великая ответственность

Однако использовать 301 редирект нужно осторожно: неправильная настройка может стать причиной сбоя в работе сайта или потери позиций ресурса в поисковике.

#Создание сайтов
#Продвижение сайтов
(Голосов: 470, рейтинг: 4.8)
Мы работаем в городах