Челябинск
Например:
Челябинск
Москва
или
Выбрать автоматически
Челябинск
Москва
Екатеринбург
Тюмень
Санкт-Петербург
Новосибирск
Нижний Новгород
Казань
Омск
Самара
Ростов-на-Дону
Уфа
Красноярск
Пермь
Воронеж
Волгоград
Краснодар
RU
Как настроить 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)
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...
загрузка карты...