Редирект на https


Редирект с http на https: повышаем безопасность сайта

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

Более высокий уровень безопасности обеспечивается за счет использования кодирования передаваемой информации на основе протоколов SSL или TLS. Обо всем по порядку.

Нужен ли вашему сайту редирект с http на https

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


И пусть в настоящее время этот признак может повлиять менее, чем на 1% рейтинга, ожидается, что в будущем Google будет уделять еще больше внимания проблемам безопасности. Помимо этого, наличие «замочка» в адресной строке отражается на доверии посетителей к конкретному онлайн ресурсу.

«Замочек» перед адресом интернет странички как раз и свидетельствует о защищенном протоколе HTTPS, а, следовательно, его отсутствие может стать причиной ухода посетителя на конкурирующий сайт.

Протокол HTTPS основан на 3-х уровнях защиты данных:

3 варианта как сделать редирект с http на https

Редирект с http на https на уровне сервера

Этот вариант перенаправления имеет ряд преимуществ. Технология такого решения предполагает прием сервером, который имеет сертификат SSL, закодированных HTTPS-запросов с последующей передачей кодированного ответа о перенаправлении без установления связи с сервером приложения.

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

В некоторых случаях (например, при отсутствии доступа к серверной конфигурации) невозможно реализовать перенаправление на базе сервера. Такие ситуации возникают при размещении ресурса на виртуальном хостинге или таких платформах, как Heroku, Azure или Google Platform. В этом случае остается вариант с использованием приложений.


HTTPS перенаправление на базе приложений

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

Другие варианты редиректа с HTTP на HTTPS

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

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

Как настроить редирект с http на https: этапы перехода

Этап 1-й. Подготовка к редиректу на HTTPS

Подготовительный этап предполагает проведение мероприятий по замене абсолютных внутренних ссылок сайта на относительные. К примеру, http://sales-generator.ru/blog/kak-prodavat-cherez-internet/  изменить в текстах на /kak-prodavat-cherez-internet/.

Есть еще один вид относительных ссылок. В этом случае в их адресе не используется доменное имя, а только протокол: //sales-generator.ru/blog/kak-prodavat-cherez-internet/.


В случае, когда на страницах присутствуют коды ремаркетинга и скрипты, то следует изменить их адреса на относительные с названием домена и без протокола HTTP. Ссылки на фото и видео тоже следует изменить на относительные без протокола.

Этап 2-й. Выбор SSL-сертификата

Использование бесплатных SSL-сертификатов связано с определенными рисками. При этом браузер может ошибочно выдавать предупреждении о небезопасном посещении сайта. По уровню защиты различают несколько вариантов таких сертификатов:

В некоторых случая для того, чтобы настроить редирект с http на https понадобится сменить сервер размещения ресурса. Дело в том, что некоторые хостеры не предоставляют поддержку SSL. При этом необходимо обратить внимание на тот факт, что при редиректе ресурс будет доступен по предыдущему IP-адресу, поэтому необходимо сделать перенаправление со старого на новый адрес.

Кроме того, следует осуществить проверку правильности установки сертификата SSL. В сети можно найти специализированные сервисы, осуществляющие проверку настроек редиректа с http на https. Специалисты таких служб помогут найти оптимальные решения для возникающих проблем. После этого к вашему ресурсу будет настроен доступ по протоколу HTTPS, но для нормальной работы ресурса необходимы еще некоторые настройки.

Этап 3-й. Настройка ресурса с сохранением уровня посещаемости.


Если раньше перед тем, как настроить редирект нужно было на ресурсе «Яндекс Вебмастер» зайти в настройках индексирования в поле «Главное зеркало» и выбрать кнопку «Установить протокол https», то в настоящее время такая функция отсутствует.

В новом интерфейсе сервиса для вебмастеров от Яндекс для отправки заявки на изменение протокола необходимо зайти в инструмент «Переезд сайта». Нужно учесть, что процедура переклейки зеркал осуществляется в автоматическом режиме и может длиться несколько недель. Решений для ускорения процесса не существует.

В файле robots.txt следует изменить строку host. Здесь нужно обязательно прописать домен вместе с https:

Например, Host: https://domennoeimya.com

Строку с картой сайта также необходимо обновить.

В сервисе Google Search Console также нужно добавить сайт HTTPS. Кроме того, здесь следует обновить XML-карту ресурса и определить регион. При наличии отклоненных ссылок в Disavow Tool нужно еще раз загрузить файл с ними.

Самое главное — правильно настроить 301 редирект с https на http (с прежнего адреса HTTP на новый с HTTPS). Если вы уже сделали все, чтобы установить 301 редирект с http на https, нужно еще проверить доступность картинок по HTTPS на всех видах страниц (страницы фильтров, карточек-товаров, прайсы, категории и др.).

Нужно учесть, что robots.txt и XML-карта сайта должны быть доступны, как по http, так и по https. При настройке перенаправлений исключение для файла robots настраивается строкой:


Этап 4-й. Правки

Как бы тщательно не была выполнена подготовка интернет ресурса к редиректу все равно есть вероятность того, что остались ссылки на HTTP. Например, могут остаться ссылки в link rel=»canonical» (это значит, что все без исключения страницы ресурса, включая абсолютные ссылки на страницах пагинации, ссылались на 301 редирект). При наличии языковых версий веб-сайта следует сделать замену адресов ссылок с

на

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

Чтобы устранить проблему, следует сделать замену ссылочных адресов для скриптов на относительные, без протокола. Затем нужно выполнить проверку ответов сервера. Страницы, которые есть на сервере должны возвращать код ответа 200, а несуществующие — 404/410. После этого остается только ожидать переиндексацию веб ресурса.

Как настроить редирект с http на https через htaccess

Наиболее популярный сервис Apache предлагает эффективные решения для пользователей, избавляющие от необходимости обращаться в глобальный конфиг httpd. conf). Для этого применяется файл дополнительной конфигурации .htaccess, размещенный в каталоге ресурса. Именно этот файл позволяет выполнить удобную настройку редиректа с http на https.

Для этого можно использовать разные текстовые редакторы типа vim, nano, mcedit др. В файле нужно прописать:

Если редирект не заработал, можно использовать еще один способ настройки через htaccess:

В этом случае работает правило Redirect 301 (при запросе доступа к странице на версии http сервер будет выдавать ответ о ее переезде на адрес с https). После изменения файл нужно сохранить.

Как сделать с помощью Nginx редирект с https на http


Файл Nginx должен содержать 2 секции server (для https и сайта http). В секции http нужно сделать редирект всех запросов на https. Для этого используется директива return. После этого выполняется обработка 2-й секции. К примеру:

2-я секция уже с обработкой SSL принимает запросы на 443 порту:

Здесь все достаточно понятно: инструкция return обеспечивает возврат нужных кодов ответов сервера. Мы осуществляем возврат кода 301 и вводим адрес куда будет перенаправлен посетитель. Помимо инструкции return, может использоваться и rewrite. Здесь нужно выполнить такие же действия:

Это стандартная запись регулярных выражений. В 1-й строке нужно выделить группу строк запросов, а во 2-й прописать правильное доменное имя. Директива может использоваться и без блока server:

На этом этапе нужно сохранить файл и выполнить тестирование конфигурации nginx:

Если проверка прошла успешно, сделай перезапуск Nginx:

Теперь проверьте ответ сервера при помощи curl:


Можно также дать возможность программе пройти весь путь редиректа:

Сделать настройку перенаправления на https nginx не очень сложно. Все настройки сводятся к внесению строки в файл «конфиг». Редирект с https на http nginx настраивается аналогично. Необходимо только изменить несколько символов в параметрах retrun. Обязательно нужно выполнять проверку настроек перенаправлений с www и на https. Этот момент особенно важен для СЕО продвижения.

Если настройка редиректа с http на https произошла с ошибкой

Чаще всего вебмастера обращаются с вопросом, почему после настройки редиректа поисковики по версии http не видят файл robots.txt (это значит, что он отдает 301 ответ сервера вместо 200).

Эта проблема связана со статическими настройками сервера, обычно статический контент должен отдавать по http и по https.

Но даже, если это не происходит, нет смысла беспокоиться: все данные теперь доступны по https.

В файле .htaccess в порядке исключения может быть настроено дополнительное правило:

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

Затем нужно выполнить проверку ответа сервера.

Как влияет редирект с http на https на SEO

После настроек редиректа с http на https обязательно измените адрес своего ресурса robots. txt (нужно  указать новое главное зеркало в панели вебмастера для поисковиков).

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


Рекомендации, которые предоставил Яндекс в отношении данного редиректа:

Рекомендации по редиректу от Google:

sales-generator.ru

Про редиректы с www и на https в интернете рассказано много. Однако для того, чтобы создать работоспособный редирект с www на сайт без www, нужно учесть один нюанс:
SSL сертификат должен быть действителен для обоих доменов (с www и без).

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

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

Две строки после RewriteEngine on создают переадресацию на сайт без www.

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

RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Есть также альтернативный вариант:

RewriteCond %{ENV:HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 

Не забывайте, что в самом верху, перед правилами RewriteCond и RewriteRule должна быть строка RewriteEngine on


В итоге код htaccess, который создает редирект с www на сайт без www и с http на https выглядит так:

RewriteEngine on  RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Для htaccess есть сборник сниппетов, на все случаи жизни: https://github.com/phanan/htaccess (en)

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

Успехов! Сработал ли у вас редирект, напишите в комментариях.

phpstack.ru

Добрый день. Не могу найти 301 редирект со страниц без слеша на слеш, ваши варианты тоже не подошли, можете помочь? Ниже предоставляю свой файл .htaccess

AddDefaultCharset UTF-8
DirectoryIndex index.php

Options All -Indexes

Header set Cache-Control «max-age=43200»


Header set Cache-Control «max-age=604800»

Header set Cache-Control «max-age=2592000»

Header unset Cache-Control

ExpiresActive On
ExpiresDefault «access plus 5 seconds»
ExpiresByType image/x-icon «access plus 2592000 seconds»
ExpiresByType image/jpeg «access plus 2592000 seconds»
ExpiresByType image/png «access plus 2592000 seconds»
ExpiresByType image/gif «access plus 2592000 seconds»
ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds»
ExpiresByType text/css «access plus 604800 seconds»
ExpiresByType text/javascript «access plus 604800 seconds»
ExpiresByType application/javascript «access plus 604800 seconds»
ExpiresByType application/x-javascript «access plus 604800 seconds»
ExpiresByType text/html «access plus 43200 seconds»
ExpiresByType application/xhtml+xml «access plus 600 seconds»

php_value post_max_size 80M
php_value upload_max_filesize 50M

ErrorDocument 404 http://mir-gardin.com.ua/404.php
RewriteEngine on

RewriteCond %{HTTP_HOST} ^mir-gardin.com.ua$ [NC]

RewriteBase /
RewriteRule ^.htaccess$ — [F]

RewriteRule ^admin/$ /admin/index.php [L]
RewriteRule ^admin/promotion$ /admin/promotion.php [L]
RewriteRule ^admin/promotion/$ /admin/promotion.php [L]
RewriteRule ^admin/services$ /admin/services.php [L]
RewriteRule ^admin/services/$ /admin/services.php [L]
RewriteRule ^admin/main$ /admin/main.php [L]
RewriteRule ^admin/main/$ /admin/main.php [L]
RewriteRule ^admin/catalog$ /admin/catalog.php [L]
RewriteRule ^admin/catalog/$ /admin/catalog.php [L]
RewriteRule ^admin/contacts$ /admin/contacts.php [L]
RewriteRule ^admin/contacts/$ /admin/contacts.php [L]
RewriteRule ^admin/news$ /admin/news.php [L]
RewriteRule ^admin/news/$ /admin/news.php [L]
RewriteRule ^admin/about_us$ /admin/about_us.php [L]
RewriteRule ^admin/about_us/$ /admin/about_us.php [L]
RewriteRule ^admin/pay$ /admin/pay.php [L]
RewriteRule ^admin/pay/$ /admin/pay.php [L]
RewriteRule ^admin/reviews$ /admin/reviews.php [L]
RewriteRule ^admin/reviews/$ /admin/reviews.php [L]
RewriteRule ^admin/our_works$ /admin/faq.php [L]
RewriteRule ^admin/our_works/$ /admin/faq.php [L]
RewriteRule ^admin/producers$ /admin/producers.php [L]
RewriteRule ^admin/producers/$ /admin/producers.php [L]
RewriteRule ^admin/fotogallery$ /admin/fotogallery.php [L]
RewriteRule ^admin/fotogallery/$ /admin/fotogallery.php [L]
RewriteRule ^admin/header$ /admin/header.php [L]
RewriteRule ^admin/header/$ /admin/header.php [L]
RewriteRule ^admin/menu$ /admin/menu.php [L]
RewriteRule ^admin/menu/$ /admin/menu.php [L]
RewriteRule ^admin/options_lr$ /admin/options_lr.php [L]
RewriteRule ^admin/options_lr/$ /admin/options_lr.php [L]
RewriteRule ^admin/modules$ /admin/modules.php [L]
RewriteRule ^admin/modules/$ /admin/modules.php [L]
RewriteRule ^admin/footer$ /admin/footer.php [L]
RewriteRule ^admin/footer/$ /admin/footer.php [L]
RewriteRule ^admin/per_page$ /admin/per_page.php [L]
RewriteRule ^admin/per_page/$ /admin/per_page.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/user_data$ /admin/user_data.php [L]
RewriteRule ^admin/user_data/$ /admin/user_data.php [L]
RewriteRule ^admin/user_files$ /admin/user_files.php [L]
RewriteRule ^admin/user_files/$ /admin/user_files.php [L]
RewriteRule ^admin/meta$ /admin/meta.php [L]
RewriteRule ^admin/meta/$ /admin/meta.php [L]
RewriteRule ^admin/fav$ /admin/fav.php [L]
RewriteRule ^admin/fav/$ /admin/fav.php [L]
RewriteRule ^admin/files$ /admin/files.php [L]
RewriteRule ^admin/files/$ /admin/files.php [L]
RewriteRule ^admin/articles$ /admin/articles.php [L]
RewriteRule ^admin/articles/$ /admin/articles.php [L]

RewriteRule ^$ /index.php [L]
#RewriteRule ^404$ /404.php [L]

RewriteRule ^registration$ /registration.php [L]
RewriteRule ^registration/$ /registration.php [L]
RewriteRule ^userpanel$ /userpanel.php [L]
RewriteRule ^userpanel/$ /userpanel.php [L]
RewriteRule ^forgot_password$ /forgot_password.php [L]
RewriteRule ^forgot_password/$ /forgot_password.php [L]

RewriteRule ^feedback$ /feedback.php [L]
RewriteRule ^feedback/$ /feedback.php [L]

RewriteRule ^about_us$ /about.php [L]
RewriteRule ^about_us/$ /about.php [L]

RewriteRule ^articles$ /articles.php?page=1 [L]
RewriteRule ^articles/$ /articles.php?page=1 [L]
RewriteRule ^articles/page$ /articles.php?page=1 [L]
RewriteRule ^articles/page/$ /articles.php?page=1 [L]
RewriteRule ^articles/page/([0-9]+)/? /articles.php?page=$1 [L]

RewriteRule ^articles/topic/(.*)/? /view_article.php?id=$1 [L]

RewriteRule ^cart$ /cart.php [L]
RewriteRule ^cart/$ /cart.php [L]

RewriteRule ^catalog$ /catalog.php?page=1 [L]
RewriteRule ^catalog/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/([0-9]+)/? /catalog.php?page=$1 [L]

RewriteRule ^catalog/category/(.*)/page/([0-9]+)/? /catalog_by_cats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/category/(.*)? /catalog_by_cats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/subcategory/(.*)/page/([0-9]+)/? /catalog_by_subcats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/subcategory/(.*)? /catalog_by_subcats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/view/(.*)/? /view_item.php?id=$1 [L]

RewriteRule ^catalog/view_all/(.*)/view/(.*)/? /view_all.php?type=$1&cat=$2 [L]
RewriteRule ^catalog/view_all/(.*)? /view_all.php?type=all&cat=0 [L]

RewriteRule ^contacts$ /contacts.php [L]
RewriteRule ^contacts/$ /contacts.php [L]

RewriteRule ^our_works$ /faq.php [L]
RewriteRule ^our_works/$ /faq.php [L]

RewriteRule ^news$ /news.php?page=1 [L]
RewriteRule ^news/$ /news.php?page=1 [L]
RewriteRule ^news/page$ /news.php?page=1 [L]
RewriteRule ^news/page/$ /news.php?page=1 [L]
RewriteRule ^news/page/([0-9]+)/? /news.php?page=$1 [L]

RewriteRule ^news/topic/(.*)/? /view_news.php?id=$1 [L]

RewriteRule ^pay$ /pay.php [L]
RewriteRule ^pay/$ /pay.php [L]

RewriteRule ^producers/(.*)/page/([0-9]+)/? /producers.php?id=$1&page=$2 [L]
RewriteRule ^producers/(.*)? /producers.php?id=$1&page=1 [L]
RewriteRule ^producers$ /producers.php [L]
RewriteRule ^producers/$ /producers.php [L]

RewriteRule ^reviews$ /reviews.php [L]
RewriteRule ^reviews/$ /reviews.php [L]

RewriteRule ^search/(.*)/? /search.php?word=$1 [L]

RewriteRule ^services$ /services.php [L]
RewriteRule ^services/$ /services.php [L]

RewriteRule ^thanks$ /thanks.php [L]
RewriteRule ^thanks/$ /thanks.php [L]

RewriteCond %{HTTP_HOST} ^www.mir-gardin.com.ua$ [NC]
RewriteRule ^(.*)$ http://mir-gardin.com.ua/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://mir-gardin.com.ua/ [R=301,L]

web-optimizator.com

HTTPS и редиректы

Рассмотрим пример. Допустим, что у нас есть сайт dnsimple.com. Его канонический URL-адрес — https://dnsimple.com. Тем не менее, существует четыре различных способа, с помощью которых можно подключиться к сайту, и нужно обеспечить, чтобы при любом из них пользователь перенаправлялся на https://dnsimple.com:

Настройка htaccess редиректов HTTP на HTTPS часто является причиной путаницы. Не всегда понятно, как правильно обрабатывать через HTTPS редиректы с WWW на не-WWW (или наоборот), и почему для этого нужен сертификат SSL / TLS. Чтобы правильно настроить эти перенаправления, необходимо понять основные принципы обработки запросов HTTPS.

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

Поток запроса HTTPS

На приведенном выше изображении показана схема прохождения запросов / ответов HTTPS. Для простоты мы разбили все действия на три фазы:

  1. На первом этапе клиент и сервер договариваются о деталях шифрования, таких как протокол шифрования и набор шифров. Также происходит обмен информацией, необходимой для переключения на защищенное соединение: открытые ключи, сведения о сертификате и т.д. Эта фаза называется «SSL / TLS рукопожатие»;
  2. На втором этапе клиент готовит HTTP-запрос, шифрует его и отправляет на сервер для обработки. Сервер принимает зашифрованный HTTP-запрос, расшифровывает его, обрабатывает и выдает HTTP response (ответ);
  3. На третьем этапе, сервер шифрует ответ и отправляет его клиенту для обработки. Клиент получает зашифрованный HTTP response, дешифрует и обрабатывает его (например, браузер начинает загружать и отображать элементы).

Эта схема потока редиректа с HTTP на HTTPS применима к любому запросу, независимо от содержимого ответа HTTP.

Выше я написал запрос HTTP и ответ HTTP для определенных целей (обратите внимание, что я использовал HTTP, а не HTTPS). С точки зрения содержимого и структуры важно понимать, что HTTPS-запрос — это HTTP-запрос, но передаваемый через защищенное соединение (TLS / SSL).

HTTPS-согласования и редиректы

Одна из самых распространенных ошибок при настройке HTTPS-редиректов — это предположение, что вам не нужен сертификат SSL при переадресации клиента с одного домена на другой.

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

После завершения первого этапа, когда клиент и сервер нашли общий язык (протокол шифрования), они могут начать взаимодействовать друг с другом, используя зашифрованное соединение. В этот момент клиент отправляет HTTP-запрос на сервер, а сервер отправляет HTTP-ответ, содержащий редирект.

Не забывайте, что редирект — это HTTP-ответ с кодом 301 (иногда 302 или 307):

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

Если бы все происходило иначе, то редирект бы обрабатывался перед проверкой сертификата SSL. Тогда клиент и сервер были бы вынуждены общаться с помощью обычного HTTP-соединения, которое не шифруется.

Если нужно перенаправить клиента с любой страницы домена https://www.example.com на другую, необходим установленный на сервере валидный сертификат SSL, который распространяется на весь домен www.example.com.

Например, чтобы перенаправить клиента с https://www.example.com на https://example.com, необходимо иметь сертификат, который распространяется на оба или два отдельных сертификата (для каждого хоста соответственно).

Стратегии HTTPS-редиректов

Мы рассмотрели, как обрабатывается редирект с HTTP на HTTPS через htaccess после SSL / TLS согласования. А также выяснили, что для перенаправления клиентов с сайта или страницы на HTTPS нужен валидный сертификат SSL, который охватывает оба домена. Далее я расскажу об общих стратегиях настройки HTTPS-редиректов.

Существует два типа настройки редиректов с HTTPS:

  1. Редирект на уровне сервера;
  2. Редирект на уровне приложений.

Термин сервер обозначает любой сервер, который находится перед веб-приложением и обрабатывает входящий HTTP-запрос. Например, front-end сервер, сервер балансировки нагрузки или единичного приложения.

Термин приложение обозначает веб-приложение, которое может быть либо столь же простым, как PHP-скрипт, либо более сложным, таким как серверное Unicorn-приложение интерпретации Ruby on Rails.

Выполнение HTTPS-редиректов на уровне сервера

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

Такой подход является более быстрым, так как сервер может обрабатывать редирект без взаимодействия с приложением. В то же время конфигурация серверов менее гибкая по сравнению с тем, что можно сделать с помощью полноценного языка программирования.
htaccess редирект HTTP на HTTPS на уровне сервера используется для массового перенаправления. Например, редиректа с WWW на не-WWW версию домена с HTTPS (или наоборот).

Следующий фрагмент кода является примером конфигурации Nginx, в котором задается редирект с http://example.com, http://www.example.com и https://www.example.com на https://example.com:

Реализация редиректа на уровне сервера более предпочтительна, но она не всегда осуществима, поскольку вы можете не иметь доступа к конфигурации сервера. Это касается виртуального хостинга или таких платформ, как Heroku, Azure или Google Platform.

Выполнение HTTPS-редиректа на уровне приложений

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

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

То, как выполняется редирект на уровне приложений, зависит от используемого языка программирования и стека. Вот несколько примеров.

Пакет Goland и net/http

Можно использовать http.Redirect.

Ruby on Rails

Можно настроить редирект на уровне маршрутизатора, использовать промежуточное программное обеспечение Rack или метод redirect_to внутри контроллера:

PHP

Используйте функцию header, чтобы отправить HTTP-заголовок перенаправления:

В некоторых случаях это единственно возможный подход. Например, если нужно перенаправить клиентов с WWW на не-WWW версию домена, с HTTPS на Heroku или Azure (или наоборот), то придется указать оба домена в одном приложении, установить сертификат и через условия обрабатывать редирект на уровне приложений.

Альтернативные способы выполнения HTTPS-редиректа

Существует несколько альтернативных способов редиректа с HTTP на HTTPS.

В некоторых ситуациях отсутствует доступ к конфигурации сервера, а платформа, на которой размещен сайт, не позволяет использовать язык программирования. В качестве типичного примера можно привести Amazon S3 для размещения статических сайтов. В этом случае нужно выяснить, предоставляет ли платформа параметры HTTPS-редиректов, которые можно настроить.

Другой вариант заключается в использовании автономного, независимого приложения для редиректов. Например, если нужно перенаправить клиентов с https://alpha.com на https://beta.com. Тогда для домена alpha.com в качестве DNS можно указать другой сервис или сервер, на котором размещен beta.com. А также настроить редирект на уровне сервера или установить приложение, которое будет выступать в качестве редиректора. При этом также необходим валидный сертификат для alpha.com, который будет установлен там, где необходимо осуществить редирект.

Заключение

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

Для создания HTTPS-редиректов требуются дополнительные действия, чтобы перенаправляемый сервер был в состоянии обработать входящие HTTPS-запросы и отправить правильный ответ о редиректе.

Существует много способов обработки URL-редиректов, и, надеюсь, эта статья помогла вам найти подходящий вариант, как сделать редирект с HTTPS на HTTP.

Перевод статьи «Redirects with HTTPS» был подготовлен дружной командой проекта Сайтостроение от А до Я.

www.internet-technologies.ru

Уже ни для кого не секрет, что Гугл и Яндекс начинают выдавать «бонусы» сайтам, у которых установлен сертификат безопасности SSL, и которые начали работать через протокол https. И чтобы корректно настроить редирект с http на https, нужно прописать в .htaccess пару строчек.

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

Вариант 1

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

Вариант 2

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

Вариант 3

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

Вариант 4

  RewriteCond %{HTTP:X-HTTPS} !1  RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  

Вариант 5

  RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'  RewriteRule ^(.*)$ https://www.domain.com/$1 [L] #не забудьте заменить на ваш домен  

Вариант 6

  RewriteCond %{HTTP:X-Forwarded-Protocol} !=https  RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]  

Вариант 7. На одну строчку больше =)

  RewriteCond %{HTTP:X-Forwarded-Proto} !https  RewriteCond %{HTTPS} off  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]  

Каждый из приведенных выше вариантов нужно прописывать сразу после включения mod_rewrite, а именно — после директивы RewriteEngine On.

alittlebit.ru

Переадресация на https через htaccess

Для того, что бы настроить редирект с http на https, вам нужно, при помощи программы Notepad++, в корне вашего сайта открыть файл .htaccess, и далее, в самом начале этого файла, прописать один из нескольких вариантов перенаправления.

Как пользоваться Notepad++ и настроить для него FTP-подключение я рассказывала в одной из прошлых статей, с которой вы можете ознакомиться по этой ссылке:

Редактирование файлов сайта в Notepad++

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

Варианты написания серверного редиректа для HTTPS

Мне удалось найти семь основных вариантов, которые используют для настройки редиректа для HTTPS протокола:

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

После вставки одного из этих вариантов в файл .htaccess, сохраняете изменения.

Проверка редиректа

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

Так же, вы можете воспользоваться одним из онлайн-сервисов, которые позволяют просмотреть правильность выполнения редиректа. Например, Redirect Checker. Для выполнения проверки вам нужно:

  1. 1.Перейти на страницу онлайн-сервиса по этой ссылке
  2. 2.В поле для ввода указать адрес, с которого должно осуществляться перенаправление в формате http://имя-сайта.ру .
  3. 3.А затем нажать на кнопку «Analyse».

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

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

Так же, вы можете проверить правильность выполнения редиректа для конкретной поисковой системы. Для этого, перед нажатием на кнопку «Analyse», нужно выбрать из выпадающего списка название нужного поискового робота:

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

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

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

С уважением Юлия Гусарь

impuls-web.ru

Что дает переход с HTTP на HTTPS?

Внедрение нового протокола безопасности для сайта может происходить по трем причинам:

  1. Конфиденциальность. Интернет — это открытая среда, и https здесь защищает коммуникации между сторонами. При отсутствии HTTPS владельцу точки доступа будут доступны приватные данные: кредитные карты (при совершении покупки в интернет-магазине, например).
  2. Целостность. Протокол https гарантирует, что информация будет доставлена адресату в нетронутом виде. Например, владелец Wi-Fi сможет вставлять на сайт «левую» рекламу, изменять внешний вид сайта и сжимать картинки для экономии трафика. Но если на сайте есть HTTPS, то это гарантирует, что сайт не будет изменен.
  3. Подлинность. Сертификат гарантирует, что посещаемый сайт действительно является подлинным.

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

протокол https

Также сертификация оказывает положительное влияние на продвижение сайта в поисковых системах. Поэтому многие вебмастера получают сертификаты безопасности для своих сайтов. Но после получения сталкиваются с проблемой — настройкой. Ведь недостаточно просто получить сертификат, нужно правильно перенаправить весь трафик на новый домен и «рассказать» об этом поисковым системам. Как это сделать?

Подготовка

Перед тем как создать редирект с http на https, необходимо подготовить сайт. Самое первое действие — сделать внутренние ссылки относительными. То есть необходимо убрать вначале ссылки символы «http://». Также можно добавить букву «s» к указанным символам, чтобы все ваши статьи ссылались на версию сайта с протоколом безопасности, но это необходимо делать после окончательного перехода сайта.

htaccess редирект с https на http

Сделать это несложно. Сейчас существует много программ для разных систем управления контентом, которые за пару секунд сделают все ссылки на сайте относительными. Например, для популярной системы Wodpress есть плагин HTTP / HTTPS Remover.

Проверка

После установки сертификата и настройки внешних ссылок желательно проверить, правильно ли «стал» сертификат. Сделать это можно с помощью специального сервиса ssllabs.com. Там нужно вписать доменное имя сайта нажать на кнопку Sabmit, после чего система покажет оценку настройки соединения и даст советы относительно решения возможных проблем. Если параметр Overall Rating будет иметь оценку «A», то значит, все отлично и ваш сертификат безопасности хорош.

Настройка редиректа с http на https

Поисковые системы воспринимают сайты с сертификатом HTTPS и без него как два абсолютно разных сайта. Поэтому настройка редиректа с http на https обязательна. Эта процедура равна смене домена. При этом переадресацию необходимо настроить прямо и важно, чтобы она не содержала промежуточных документов. В противном случае могут образоваться цепочки редиректов, что может запутать поисковые системы. Естественно, это негативно повлияет на восприятие сайта и никакой пользы не принесет. редирект с http на https в битрикс

Самый простой вариант — редактировать файл htaccess. Редирект с HTTP на HTTPS с помощью этого файла делается в том случае, если сайт размещен на сервере Apache. Необходимо в файле прописать следующие строки:

[…]

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

[…]

Можете просто скопировать и вставить в свой файл htaccess. Напомним, он находится в корне вашего сайта и всегда присутствует на сайтах, работающих под управлением Apache.

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

Теперь, когда робот поисковой системы попадет на ваш сайт, он будет автоматически перенаправлен на версию https. Ему потребуется время, чтобы понять, что к чему и внести эти данные в свой алгоритм. Обычно восприятие перехода и редиректа с http на https у поисковой системы «Яндекс» занимает около месяца, хотя у Google уходит неделя-другая.

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

Впрочем, чаще всего редирект проходит практически безболезненно и быстро. «Яндекс» в течение месяца «склеивает» сайт и его зеркало, и в результате весь трафик возвращается обратно, но уже на новый домен с приставкой https.

Заключение

Рано или поздно переходить на новый протокол безопасности придется. Вскоре это станет одним из ключевых требований поисковых систем, которые просто не будут высоко ранжировать сайты с протоколом http. Так почему бы это не сделать раньше, чем сделают ваши конкуренты? Да, в первое время будет тяжело, и вы, скорее всего, потеряете часть трафика, но в долгосрочной перспективе точно выиграете. По крайней мере, так говорят сами представители поисковых систем. Нет оснований им не верить. И вообще, переход на https — это совершенствование своего сайта с точки зрения безопасности.

fb.ru

Что такое редирект с http на https?

Очень важно, чтобы после перехода на защищенный протокол все ссылки Вашего сайта работали по https. В этом и заключается весь смысл надежности передачи данных. В ином случае браузер будет выдавать ошибки, что на сайте присутствует смешанный контент. Это означает, что некоторые данные (часто изображения, js-скрипты, css-стили) будут передаваться по незащищенному протоколу (http). Отметим, что от корректного перехода на https зависит сохранность данных всех Ваших пользователей.

Как выполнить редирект с http на https в WordPress?

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

Наиболее простым и надежным способом является использование плагина Clearfy Pro, который без каких-либо проблем гарантирует правильную переадресацию с http на https для всех разделов и элементов Вашего сайта. Для этого достаточно в админ-части перейти Clearfy Pro и на вкладке SEO активировать настройку Редирект с http на https.

Страница настроек плагина Clearfy Pro

Рассмотрим также и другие, менее удобные, способы переадресации на https, которые имеют один существенный недостаток — предоставляются в виде дополнительных плагинов.

Способ 1. Плагин Easy HTTPS Redirection

Easy HTTPS Redirection — отдельный плагин для осуществления редиректа с http на https. После его установки и активации следует включить процесс редиректа. Для этого необходимо перейти в раздел Настройки -> HTTPS Redirection и активировать настройку Enable automatic redirection to the «HTTPS», после чего нажать кнопку Сохранить изменения.

Страница настроек плагина Easy HTTPS Redirection

Способ 2. Плагин Force HTTPS

Force HTTPS — плагин, который сразу после установки и активации будет выполнять переадресацию всех страниц Вашего сайта на защищенный протокол https. В настройках не нуждается. Следует отметить, что после его активации все разделы сайта, включая админ-часть, будут доступны через https. Для этого перед его установкой необходимо еще раз удостовериться о наличии SSL-сертификата для домена Вашего сайта.

wpschool.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.