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

301 редирект с http на https, разные сервера – разные способы

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

В, теперь уже далёком, 2016-м году (как время-то летит!) я писал о переходе с http на https, но в то время редиректом не озадачивался вообще. Однако теперь вот пришлось. И оказалось, что не всё так просто.

Не буду описывать что такое редирект и зачем он нужен - в Сети масса материалов об этом. Вот, например:

301 редирект призван помочь вебмастерам переадресовать пользователей с одного URL, который изначально был в адресной строке браузера, на совершенно иной. С точки зрения поисковой оптимизации, 301 Moved Permanently — это постоянный редирект, который помогает переместить до 99% ссылочного веса на новый URL, а старый «пометить» в качестве устаревшего.

Лично мне он понадобился для того, чтобы если набирали http, то попадали всё-равно на https. Для интернет-магазина это просто необходимо, особенно при организации там онлайн-платежей. Для остальных сайтов тоже.

301 редирект посредством .htaccess

Это, на мой взгляд, самый простой способ и подходит для многих владельцев сайтов, в том числе и для этого вот моего блога.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Заходим по FTP на свой сайт, ищем там файл .htaccess и вставляем вышеприведённый код.

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

И всё бы хорошо, но есть сервера Nginx (NGINX – это мощный веб-сервер, использующий не потоковую, управляемую событиями архитектуру, которая при правильной настройке позволяет ему превосходить Apache)... На этих серверах .htaccess не работает. Приходится использовать иные способы редиректа.

301 редирект с http на https на серверах Nginx

Тут надо оговориться, что когда-то мы арендовали виртуальный web-сервер (именно nginx), который сами конфигурируем и на котором размещаем все свои сайты. Но, с редиректом на уровне сервера вышла загвоздка и тогда я решил обратиться в техподдержку хостинга.

Коротко о попытке решить проблему через техподдержку.

Если уж совсем коротко, то техподдержка сообщила, что не сможет этого сделать, так-как наша панель управления сервером не предусматривает такую возможность. Предложили решать самим и не через настройки хостинга, а посредством кода на наших сайтах. Это я сейчас про свою компанию говорю. У нас там есть сайты (интернет-магазины) 3-х видов: мои рукописные (на php), на движке OpenCart и на движке WordPress.

Как делать 301 редирект с http на https в таких случаях я и расскажу ниже.

301 редирект с http на https при помощи php

Нижеприведённый код универсален. В том смысле, что я его внедрил и в рукописные свои сайты, и на сайты OpenCart. В последнем случае можно смело править файл index.php, поскольку OpenCart не предусматривает обновлений своих версий. Какую версию установил, та и будет всегда.

<?php
if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || 
   $_SERVER['HTTPS'] == 1) ||  
   isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&   
   $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
   $redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
   header('HTTP/1.1 301 Moved Permanently');
   header('Location: ' . $redirect);
   exit();
}
?>

После этого, как ни набирай адрес - любая страница магазина открывается, как https...

301 редирект с http на https при помощи плагина WordPress

Увы, WordPress обновляется очень часто и все изменения, где-бы вы их ни делали, исчезнут при очередном обновлении. Да, тут на выручку приходят плагины редиректа. Однако, большинство из них, попросту вносят изменения в тот же .htaccess, который на nginx не работает.

Тем не менее, я всё-же нашёл именно то, что нужно.

301 редирект с http на https
Плагин Redirection

Судя по описанию, плагин Redirectiom подойдёт для любого типа web-сервера. Устанавливаем и активируем, как обычно. После этого он появится в меню админ-панели.

2020 10 07 214228 - 301 редирект с http на https, разные сервера - разные способы

Кликаем по этому пункту и попадаем на страницу настроек плагина.

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

Жмём кнопку «Start Setup» и попадаем в интерфейс настройки установки:

301 редирект с http на https
Конфигурация установки

Отмечаем все галочки и кликаем «Continue Setup». Плагин установит нужные ему компоненты.

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

И наконец, после проверки REST API, завершаем установку.

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

Последним действием настраиваем собственно 301 редирект с http на https:

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

Обратите внимание: всю настройку я делал на вкладке «Сайт», на другие даже не заглядывал. Вот так выглядит моя настройка. Жмём кнопку «Обновить».

И на этом всё. Теперь любая страница WordPress, будь то интернет-магазин или блог, будет переадресована с http на https.

Подводя итог

Такими способами я решил проблему с редиректом на всех своих сайтах, корпоративных и личных - на рукописных, на OpenCart, на WordPress, включая и этот мой блог.

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

Подписывайтесь на мой канал в telegram - 301 редирект с http на https, разные сервера - разные способыTelegram и будете первыми узнавать о новых статьях блога, а также увидите там много чего интересного...
Огни большого города https://obg.kz

Смотрите также

Медиафайлы wordpress

Медиафайлы wordpress-блеск и нищета библиотеки

Медиафайлы wordpress - одно из самых неудачных решений разработчиков этого, вобщем-то, замечательного движка. Хотя для …

Проблемы с обновлением

Проблема с обновлением WordPress и плагинов

Проблема с обновлением WordPress и плагинов стала для меня полной неожиданностью. И пришла она, эта …

20 комментариев

  1. Интересно как всегда и соображаю, а если мой сайт без движковый и собран из 40 разных страниц через ссылки в меню или под разными потомками корневого сайта servis.kharkov.ua.   Что посоветуете?

    • Андрей, я в статье одним из вариантов показывал, как сделал для своих рукописных сайтов. А это и есть без движковые, как раз…

      А если Вы про cold.kh.ua, так там переадресация вроде как работает уже…

      Кстати, на servis.kharkov.ua тоже переадресация работает,..

      Или Вы про что?

  2. Спасибо за дельную статью! На своём блоге как-то сразу получилось настроить редирект на https. Но сейчас перепроверил на всякий случай ещё раз)

  3. Да, за всё время ведения своего блога с 2012 г. я так и не вникла ни в редиректы, ни в htaccess и прочие понятия. Блин, это всё для меня китайская грамота, которую мозг отказывается воспринимать.  Даже, как-то неловко. blush

    • …я так и не вникла ни в редиректы, ни в htaccess и прочие понятия

      Валентина, признайтесь: Вы же от этого дискомфорт не испытываете? Если Вас всё устраивает, то и не надо ничего менять. Но я уверен, что если вдруг это действительно понадобится, то разберётесь в всеми понятиями. 

      Я вот попробовал Ваш блог набрать, как https, а меня всё-равно на http перекинуло. Другими словами, у Вас всё работает, только в обратную сторону… 

      • Я вот попробовал Ваш блог набрать, как https, а меня всё-равно на http перекинуло.

          Так я и не переводила блог на https.

        • Я про то, что у Вас редирект работает. Правда он на http переводит, а не на https. Если бы не работал редирект, то при наборе https было бы сообщение, что страница не найдена, если я не ошибаюсь… 

  4. Очень полезная информация! Но для меня это очень сложно, поэтому настройку 301 редиректа мне помогли сделать. Если бы раньше я увидела вашу статью, то сделала бы это сама, и не пришлось бы платить за это деньги. Но пришлось, поскольку боюсь связываться с кодами. Я их просто панически боюсь/

  5. Очень полезная информация, а главное – вовремя. Сейчас нечасто бываю в админке, забываю и то немногое, что знал. Вносить изменения в коды как-то боязно, хорошо, что есть плагин. Настроился он не сразу, потребовал очистить кеш.

    Большое спасибо, Александр, за статью.

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

      Правда, почему-то на Ваш сайт не смог перейти… Это у Вас проблема или у меня?

      • Я перешел. Ссылка работает. Это у меня новый сайт о живописи. Может, у Вас "пытается" на мой кулинарный сайт зайти? Я его закрыл.

        Попробуйте зайти по прямой ссылке iacakov точка ru (чтобы не оставлять внешних ссылок)))))

        • Да нет, я же по ссылке с комментария перехожу… Не открывается у меня ни с дома, ни с работы…

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

        • Ну вот, я был прав! Обычным браузером зайти не могу, а через ТОР зашёл без проблем. Игорь, я поражён, почему раньше не показывали своё творчество? Очень талантливо! 

          • Спасибо, Александр!

            Я показываю на выставках, в соцсетях, галереях, в т.ч. электронных. Недавно сделал этот сайт. Только не очень им занимаюсь…

            Спасибо за тёплые слова в гостевой книге!)))

  6. Из плагинов WordPress для 301-го редиректа пользовался только Simple 301 Redirects – он мне показался простым и удобным. Это когда отдельные страницы необходимо было перенаправить. При массовом редиректе – только .htaccess, в WordPress всегда корректно срабатывало. Вариант перенаправления при помощи php мне известен не был, понравилась его "универсальность", при случае попробую и этот вариант.

    • На nginx-серверах .htaccess не работает. Хоть через плагин, хоть как. Тот плагин, что ты указал, скорее всего меняет именно .htaccess. Но на nginx-серверах эффекта не будет.

      php в wordpress тоже под вопросом – первое обновление и код слетел. Нет, можно конечно, дочерняя тема там и прочее. Но удобнее, конечно, использовать представленный в статье плагин. Надёжнее.

  7. Во! То что надо. Спасибо большое за материал. 

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

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

 Ясогласен с политикой конфиденциальности сайта и пользовательским соглашением