Перенаправление с http на https


Приветствую вас на сайте Impuls-Web!

Сегодня мы рассмотрим последний этап перевода сайта на SSL-сертификат, в котором нам нужно настроить редирект с http на https, или, другими словами, перенаправление с нашего прежнего адреса, начинающегося с http://, на новый адрес по протоколу HTTPS.

В предыдущих статьях я рассматривала процесс получения у установки SSL сертификата. Если вы их не читали – вот ссылки:
Нужен ли SSL-сертификат для сайта?
Как получить бесплатно SSL-сертификат для сайта?
Как получить SSL сертификат?
Как установить SSL-сертификат на хостинг?

Переадресация на 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

Добрый день. Не могу найти 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/$ .


r /> 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

Введение

Ниже я покажу, как перенаправить сайт с www на без-www (или наоборот) и с http на https, используя конфигурацию сервера Apache. Чтобы стало понятнее, конфигурация будет перенаправлять следующие имена хостов:

на

Также я покажу небольшое изменение для перенаправления без-WWW на версию с WWW, если вы предпочитаете WWW.

Конфигурация Apache

Перед тем, как сделать редирект с https на http, добавьте следующее правило перенаправления в файл конфигурации Apache (если у вас есть доступ к нему), либо в файл .htaccess, расположенный в корневом каталоге вашего сайта:


Если вместо example.com вы хотите использовать по умолчанию URL www.example.com, то просто измените третью и пятую строки:

Как это работает?

Попробуем разобраться, как работает эта конфигурация htaccess редиректа http на https. Это поможет внести необходимые изменения:

Первая строка позволяет Apache запустить механизм преобразования http-ссылок, необходимый для выполнения перенаправления:

Эти две строки — условия перенаправления, они используются для определения того, должен ли запрос быть перенаправлен. Если любое из этих двух условий возвратит true, то Apache выполнит перенаправление, поскольку условия соединяются с помощью [OR].

Первое условие определяет, использует ли запрос URL не-HTTPS. Второе условие определяет, использует ли запрос URL www. Заметьте, я использовал www.а не www., потому что образец является регулярным выражением и точка здесь используется для экранирования. Следовательно, ее нужно оставить:

Четвертая строка — она соответствует имени хоста входящего запроса, и разделяет его на www часть (если таковая имеется), и остальную часть имени хоста. Мы будем ссылаться на нее позже с помощью %1 в RewriteRule.

Если вы знаете имя хоста заранее, то можно улучшить правило редиректа с http на https, встроив URL и пропустив это условие (пример ниже):

RewriteRule – центральный элемент перенаправления. С помощью этой строки мы предписываем Apache перенаправить любой запрос на новый URL, который состоит из:

  • https: // WWW;
  • %1: Ссылка на без-WWW часть хоста;
  • %{REQUEST_URL}: URL-запрос, без имени хоста.

Все эти маркеры соединены друг с другом, и представляют собой конечный URL перенаправления. В конце мы добавляем три флага:

  • NE — чтобы не выйти из специальных символов;
  • R=301 — использовать HTTP статус 301 редиректа;
  • L — прекратить обработку других правил, и немедленно перенаправить.

Замечания

В моём примере htaccess редиректа http на https используется дополнительная строка RewriteCond, чтобы извлечь имя хоста, а не подставлять имя в правило. Если чувствуете, что для вас это — потеря производительности, то можете встроить хост непосредственно в правило:

Заключение

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

Перевод статьи “Apache redirect www to non-www and HTTP to HTTPS” был подготовлен дружной командой проекта Сайтостроение от А до Я.

www.internet-technologies.ru

Редиректы

Редирект наверное лучше всего настроить через .htaccess, путем вставки такой конструкции перед правилами WordPress. А лучше перед всеми правилами, т.е. в самое начало файла:

# SSL: 301 redirect to https from http <IfModule mod_rewrite.c> 	RewriteEngine On 	RewriteCond %{SERVER_PORT} !^443$ 	RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>

Еще вариант:

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

Еще вариант:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /(.*) HTTP/ [NC] RewriteCond %{HTTPS} off [NC] RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

Тут важно, что устанавливается 301 редирект, в сети посмотрел эту тему, кое-где его не используют, а он нужен!

Также, можно установить редирект в PHP, вместе с редиректом c .htaccess. Пригодится, если по какой-то причине редирект с апача слетит, чтобы PHP был на подстраховке…

## redirect с http на https add_action('init', 'http_to_https_redirect'); function http_to_https_redirect(){ 	if( is_ssl() ) return;  	if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) 		wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ), 301 ); 	else 		wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );  	exit; }

Изменение URL в контенте

В сети видел предложения заменять http на https прямо в базе данных. Я думаю это не лучшее решение, потому что возможно в будущем вы откажетесь от SSL и тогда нужно будет все менять обратно… Поэтому лучше делать замену на лету, таким кодом (он быстрый):

add_filter('the_content', 'replace_url_to_https', 30); function replace_url_to_https( $text ){ 	$text = preg_replace('~http(://(?:www.)?'. preg_quote($_SERVER['HTTP_HOST']) .')~', 'https1', $text ); 	return $text; }

Как вы, наверное, понимаете функцию replace_url_to_https() можно будет применить к любому тексту, где нужно заменить текст http://ваш-сайт.ru/* текст на текст https://ваш-сайт.ru/* текст. Она меняет все без разбора, будь то картинки или что-то еще, но только для URL относящихся к текущему домену…

Изменение URL других ссылок

Вообще WordPress автоматически подстраивается под https протокол текущей страницы и все ссылки должны измениться автоматом. Поэтому нет необходимости изменять даже протоколы в ссылках: URL сайта и URL WordPress (в настройках). Их протокол меняется налету…

Но если этого не произошло (протокол страницы https, но в ней есть ссылки http), то для смены протокола отдельных ссылок в WP есть функция set_url_scheme().

Пример:

echo set_url_scheme( 'http://site.ru/foo', 'https' ); // https://site.ru/foo

Корневая функция на основе которой ставиться протокол всех ссылок — это is_ssl(). Влияя на нее мы может влиять на все ссылки, при условии, что они жестко не прописаны в HTML, а выводятся через различные функции WordPress. Например, следующим кодом мы можем, жестко указать протокол https для всех ссылок на странице, даже если протокол страницы http:

$_SERVER[ 'HTTPS' ] = 'on'; // чтобы is_ssl() всегда возвращала true

Вызвать такой код нужно как можно раньше, до подключения плагинов. И наверное перед его вызовом нужно сделать какие-то проверки. Этот код — это просто пример…

Плагины

Как обычно, можно использовать плагины (я их не пробовал)…

Easy HTTPS Redirection — заглянул в код, вроде бы как раз то что вам нужно…

WordPress HTTPS (SSL) — вроде тоже хорош, правда не обновляется уже давно. Он, как я понял, заменяет все ссылки во всем HTML документе, работает как комбаин: много лишних операций, но может это и нужно, потому что удобно…

wp-kama.ru

Перенаправление с http на https

Хотел бы рассказать о том как можно перенаправить любой запрос HTTP на веб-сервере на HTTPS. Это не очень сложно и я ничего нового не расскажу кто это знает, но для новичка — будет полезным. В своей теме «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» я расскажу как это можно сделать.

Для примера, я возьму свой сайт http://linux-notes.org и сделаю перенаправление на https://linux-notes.org

Для начала открываем файл с конфигурацией (для разных Linux ОС файл с конфигурациями может лежать в другом месте):

В CentOS/Fedora/Redhat:

# vim /etc/httpd/conf/httpd.conf

В Debian/Ubuntu:

# vim /etc/apache2/apache2.conf

Убедитесь что модуль mod_rewrite.so загружен (имеется строчка):

[...]  LoadModule rewrite_module modules/mod_rewrite.so  [...]

Если ее нет, то пропишите.

Перенаправление HTTP на HTTPS для Apache в Unix/Linux

Прописываем в свой файл с конфигурацией:

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

PS: Лучше это сделать в файле htaccess (в домашней директории самого сайта)!

Принудительное перенаправление HTTP на HTTPS для Apache в Unix/Linux

Для того, чтобы перенаправить весь веб-трафик на HTTPS (принудительно)вставить следующие строки кода в файле .htaccess в корневой папке вашего сайта.

Важно: Если у вас есть существующий код в .htacess, добавьте эти строки — выше:

RewriteEngine On   RewriteCond %{SERVER_PORT} 80   RewriteRule ^(.*)$ https://www. linux-notes.org/$1 [R,L]

Не забудьте заменить www. linux-notes.org на ваш домен.

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

RewriteEngine On  RewriteCond %{HTTP_HOST} ^linux-notes.org [NC]  RewriteCond %{SERVER_PORT} 80  RewriteRule ^(.*)$ https://www.linux-notes.org/$1 [R,L]

Не забудьте заменить linux-notes.org с вашим доменом. Кроме того, вам нужно заменить www. linux-notes.org с вашим действительным именем домена.

Если вы хотите заставить принудительно использовать SSL на определенную папку, то пропишите:

RewriteEngine On  RewriteCond %{SERVER_PORT} 80  RewriteCond %{REQUEST_URI} folder  RewriteRule ^(.*)$ https://www. linux-notes.org/folder/$1 [R,L]

После чего, необходимо перезапустить службу с apache:

# service httpd restart

Это для rpm’s ОС, а для deb’s — это выглядит так:

# service apache2 restart

PS: Если прописать в htaccess, то перезапускать web-сервер не нужно.

На этом все, статья «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» завершена.

linux-notes.org

Нужен ли вашему сайту редирект с 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

HTTP (протокол передачи гипертекста) является популярным, а также основным протоколом для обмена данными в World Wide Web (WWW — всемирная паутина) — как правило, между веб-браузером и сервером, который хранит веб-файлы. В то же время HTTPS — это безопасная версия HTTP, где «S» в конце означает «Secure».

При использовании HTTPS все данные между вашим браузером и веб-сервером шифруются, таким образом повышая степень безопасности. В этой статье будет показано, как перенаправить трафик HTTP на HTTPS в HTTP-сервера Apache в Linux.

Прежде чем вы сможете настроить перенаправление Apache HTTP на HTTPS для своего домена, убедитесь, что у вас установлен сертификат SSL, и в Apache включен mod_rewrite.

Перенаправление HTTP на HTTPS в Apache с использованием
файла .htaccess

Сначала убедитесь, что модуль mod_rewrite включен, в противном случае ОБЯЗАТЕЛЬНО включите его.

$ sudo a2enmod rewrite [Ubuntu/Debian]

 

Для пользователей CentOS/RHEL (!) Убедитесь, что у вас есть следующая строка в httpd.conf (поддержка mod_rewrite — включена по умолчанию).

LoadModule rewrite_module modules/mod_rewrite.so

 

Теперь вам просто нужно отредактировать или создать файл .htaccess в корневом каталоге вашего домена и добавить эти строки для перенаправления http на https.

RewriteEngine On  RewriteCond %{HTTPS} !=on  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

 

Теперь, когда посетитель набирает http://www.yourdomain.com, сервер автоматически перенаправляет HTTP на HTTPS https://www.yourdomain.com.

 

blog.sedicomm.com

Уже ни для кого не секрет, что Гугл и Яндекс начинают выдавать «бонусы» сайтам, у которых установлен сертификат безопасности 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


You May Also Like

About the Author: admind

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

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

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