г. Москва, наб Пресненская, д. 8, стр. 1
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок

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

Содержание

  1. Что такое 301 редирект
  2. 301 редирект для SEO
  3. Пошаговая настройка
  4. Настройка через файл .htaccess
  5. Склейка зеркал сайта
  6. Постраничный редирект
  7. Изменение домена
  8. Редирект на страницу с другим url (без параметров)
  9. Редирект для url (с параметрами)
  10. Редирект с index.php на главную
  11. Редирект со страниц со слешем на страницы без слеша (для всего сайта)
  12. Редирект со страниц без слеша на слеш (для всего сайта)
  13. Постоянный редирект для Nginx
  14. Редирект для PHP
  15. Редирект 301 в разных панелях управления хостингом
  16. Редирект для популярных CMS
  17. Автоматическое создание кода

Вопросы интернет-безопасности с каждым днем становятся все более актуальными. Именно с этим связана тенденция перевода крупных порталов, сайтов, блогов, интернет-магазинов и других ресурсов с традиционного протокола HTTP на более безопасный HTTPS.

После того, как вы подготовили сайт к переносу на HTTPS, устранили возможные технические ошибки и купили SSL-сертификат, необходимо перенаправить всех посетителей, которые обратились по незащищенному протоколу HTTP, на безопасную версию сайта по протоколу HTTPS. Сделать это можно с помощью 301-редиректа.

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

Редиректом называется процесс, при котором посетитель сайта автоматически перенаправляется с устаревшей страницы на актуальную (адрес может содержать http, https, www). Есть два варианта выполнения редиректа - на сервере и в браузере. Серверный редирект предпочтительнее, поскольку он не тормозит загрузку страниц.

301 редирект для SEO

Как уже было сказано ранее, протокол HTTPS - полезное и эффективное решение для безопасной передачи данных. Но массовое внимание он получил после того, как Google начал использовать критерий наличия редиректа с http на https для ранжирования страниц в поиске.

Корректно настроенный 301 редирект необходим для эффективного SEO-продвижения ресурса. Грамотно перемещенная страница не теряет позиций в выдаче и сохраняет свой прежний вес.

Рекомендуемые решения

Пошаговая настройка

Настроить редирект можно двумя способами - с помощью панели управления или файла .htaccess.

Настройка через файл .htaccess

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

Что делать, если. htaccess отсутствует? Его нужно сделать и добавить код (без указания доменного имени):

RewriteEngine on

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https

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

Затем вбейте в адресную строку вашдомен.ru и убедитесь, что вас автоматически перенаправляет на https:/вашдомен.ru. Цель достигнута!

Обратите внимание на то, что файл .htaccess обеспечивает редирект только при наличии точки. Без нее редирект просто не будет работать.

Иногда после перехода на https происходит сбой шрифтов. Ничего страшного. У каждой страницы сайта есть код, содержащий надпись с установкой шрифта. Как правило, эта надпись содержит http. Найдите надпись <script src="http://ajax.googleapis.com/ajax/libs/.../script> и замените http на https. Получится <script src="https://ajax.googleapis.com/ajax/libs/.../script>. Это не единственный способ настройки редиректа, существуют и другие варианты.

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

Поисковые системы распознают сайты http://name.site и http://www.name.site как разные сайты, но на самом деле - это разные адреса одного сайта.

Поисковая система проиндексирует сайт по одному адресу, а по второму определит его как дубль. Это негативно влияет на продвижение, поэтому здесь нужна «склейка».

Если поисковая система в первую очередь индексирует версию с www, то файл .htaccess необходимо дополнить редиректом без www:

RewriteCond %{HTTP_HOST} ^www.name.site [NC]

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

В обратной ситуации в файле прописывается следующее:

RewriteCond %{HTTP_HOST} ^v name.site [NC]

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

Если вы хотите сделать редирект 301 для всего сайта, то в файл .htaccess надо добавить:

RewriteCond %{SERVER_PORT} !^443

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

Не сработало? Попробуйте по-другому:

RewriteCond %{HTTPS} =on

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

Осталось циклическое перенаправление? Тогда сделайте так:

RewriteCond %{HTTPS} off

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

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

Не сработало? Попробуйте опять:

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443

RewriteCond %{REQUEST_URI} =/page.php

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

В итоге вы получите перенаправление на https без потери SEO-настроек.

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

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

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} !^/page.php

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

Для редиректа на https одной страницы воспользуйтесь конструкцией:

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} =/page.php

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

Для редиректа целого сайта с https на http пропишите в файле:

RewriteCond %{SERVER_PORT} ^443 [OR]

RewriteCond %{HTTP} =on

RewriteRule ^(.) https://name.site/1 [R=301,L]

Изменение домена

Чтобы перейти на другой домен без потери позиций в поиске, пропишите в файле .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 страницы. Для переноса данных в .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. Для настройки редиректа в нем добавляются строки в файле nginx.config.

C www на без www

server {#...

if(host~ www.(.)) {

set host_without_www 1;

rewrite ^ (.) http: //host_without_www1 permanent;

}#...

}

Без www на с www

server {#...

if(host~ ^ [ ^ .] + .[ ^ .] + ) {

rewrite ^ (.) scheme: //www.host1 permanent;

}#...

}

Сохранив изменения, перезапустите сервер с помощью команды «service nginx restart».

Редирект для PHP

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

Алгоритм действий:

  1. Загрузка на жесткий диск файла index.php.
  2. Генерирование кода.
  3. Занесение кода в текстовый файл с последующим сохранением и загрузкой на сервер.
  4. Указание основного URL в настройках сайта.
Рекомендуемые решения

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

Cpanel

Чтобы сделать 301 редирект Cpanel, выполните следующее:

  1. Зайдите в блок «Домены» и выберите «Перенаправления».
  2. Найдите строку «Тип», выберите «Постоянный 301».
  3. Когда появится выпадающий список, в строке https://www выберите домен сайта (к примеру, example.ru).
  4. Напишите в строке «Перенаправляет на» адрес http://example.ru.
  5. После этого в блоке «Перенаправление www» найдите пункт «Перенаправлять только с www» и поставьте галочку.
  6. Кликните «Добавить», чтобы изменения сохранились.

ISPmanager

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

Beget

Средства этой панели управления не предназначены для редиректа 301. Установить редирект можно, воспользовавшись файлом .htaccess.

Редирект для популярных CMS

WordPress

Чтобы создать постоянный редирект для этой CMS, разработано множество плагинов, например, Quick Page, Safe Redirect Manager, Redirection и др.

Рассмотрим редирект через Redirection. Выполнить перенаправление можно через консоль сайта, зайдя во вкладку «Инструменты» или воспользовавшись разделом плагинов. Все, что нужно, - это заполнить два поля - Source URL и Target URL, указав в первой графе старый адрес, а во второй новый.

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

Битрикс

Для перенаправления на новую страницу в системе Bitrix достаточно отредактировать файл .htaccess, внеся в него такой редирект:

RewriteEngine On

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

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

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

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

Чтобы поисковая система распознавала два разных адреса как один сайт, должна исправно работать постоянная переадресация. Для оптимизации сайта, устранения неполадок и недоработок есть надежный инструмент - 301 редирект.

Пользуйтесь этим инструментом осторожно и с умом, чтобы не вызвать сбой в работе и не потерять позиции сайта в поисковиках.

Популярные категории

Назад к списку



ЧЕРЕЗ
N сек.
ты получишь
подарок
Промокод
на скидку
Получить промокод