Как перенаправить на https
В связи с массовым переходом сайтов на HTTPS перед разработчиками и администраторами сайтов встал ряд новых проблем. Одной из них является редирект с HTTP на HTTPS и необходимость правильно обрабатывать переадресацию на канонический адрес сайта, чтобы избежать дублирования контента.
HTTPS и редиректы
Содержание
- 1 HTTPS и редиректы
- 1.1 Поток запроса HTTPS
- 1.2 HTTPS-согласования и редиректы
- 1.3 Стратегии HTTPS-редиректов
- 1.4 Выполнение HTTPS-редиректов на уровне сервера
- 1.5 Выполнение HTTPS-редиректа на уровне приложений
- 1.6 Альтернативные способы выполнения HTTPS-редиректа
- 1.7 Заключение
- 1.8 Что это такое и зачем оно нужно?
- 1.9 Настройка перенаправления в htaccess
- 2 Что дает переход с HTTP на HTTPS?
- 3 Подготовка
- 4 Проверка
- 5 Настройка редиректа с http на https
- 6 Заключение
- 7 Что такое редирект с http на https?
- 8 Как выполнить редирект с http на https в WordPress?
Рассмотрим пример. Допустим, что у нас есть сайт dnsimple.com. Его канонический URL-адрес — https://dnsimple.com. Тем не менее, существует четыре различных способа, с помощью которых можно подключиться к сайту, и нужно обеспечить, чтобы при любом из них пользователь перенаправлялся на https://dnsimple.com:
Настройка htaccess редиректов HTTP на HTTPS часто является причиной путаницы. Не всегда понятно, как правильно обрабатывать через HTTPS редиректы с WWW на не-WWW (или наоборот), и почему для этого нужен сертификат SSL / TLS. Чтобы правильно настроить эти перенаправления, необходимо понять основные принципы обработки запросов HTTPS.
Далее мы рассмотрим, в каком порядке устанавливается соединение по протоколу HTTPS, как происходит обработка HTTP-запросов и настройка редиректов с поддержкой HTTPS.
Поток запроса HTTPS
На приведенном выше изображении показана схема прохождения запросов / ответов HTTPS. Для простоты мы разбили все действия на три фазы:
- На первом этапе клиент и сервер договариваются о деталях шифрования, таких как протокол шифрования и набор шифров. Также происходит обмен информацией, необходимой для переключения на защищенное соединение: открытые ключи, сведения о сертификате и т.д. Эта фаза называется «SSL / TLS рукопожатие»;
- На втором этапе клиент готовит HTTP-запрос, шифрует его и отправляет на сервер для обработки. Сервер принимает зашифрованный HTTP-запрос, расшифровывает его, обрабатывает и выдает HTTP response (ответ);
- На третьем этапе, сервер шифрует ответ и отправляет его клиенту для обработки. Клиент получает зашифрованный 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:
- Редирект на уровне сервера;
- Редирект на уровне приложений.
Термин сервер обозначает любой сервер, который находится перед веб-приложением и обрабатывает входящий 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
Новый 2017й год — это будет массовый год перехода больших и маленьких сайтов, блогов и порталов с обычного старого и всем известного протокола HTTP на его более новую и безопасную версию HTTS. Буква S в аббревиатуре обозначает «Secure», то есть безопасный. Это достигается за счёт использования протоколом шифрования, которое используется в протоколах SSL или TLS, поверх которых будут передаваться данные. Такую политику продвигает компания Google. В след за ней, скорее всего, этим займутся и все остальные Интернет-медиагиганты.
Всвязи с этими событиями у веб-мастеров начинают возникать различные вопросы, связанные с переходом от одного протокола к другому. В этой статье я расскажу про то, как настроить редирект с http на https через htaccess на веб-сервере Apache.
Что это такое и зачем оно нужно?
В переводе с английского языка слово «redirect» обозначает перенаправление. То есть, смысл этой процедуры заключается в том, чтобы трафик, который идёт на обычную версию сайта перенаправить на новую, защищённую версию. Тут дело в том, что для поисковиков сайт http://example.ru и https://example.ru — это два разных ресурса. Поэтому, после перехода на защищённый протокол, в Интернете появляется полная копия исходного сайта. И вот чтобы избежать проблем с поиском и работой сайта, крайне необходимо настроить перенаправление, то есть редирект сайта с http на https.
Настройка перенаправления в htaccess
У самого популярного веб-сервера Apache для большего удобства работы и настройки (проще говоря, чтобы пользователь не лазил лишний раз в глобальный конфиг httpd.conf) используется специальный файл дополнительной конфигурации .htaccess, который лежит в каталоге сайта. Вот как раз с его помощью можно настроить перенаправление http на https.
Итак, с помощью любого подручного текстового редактора — vim, nano, mcedit и т.п. — открываем файл и прописываем следующее:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Если вдруг не заработает — пробуйте второй вариант настройки редиректа через htaccess:
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Во втором случае используется правило Redirect 301, когда при попытке доступа к той или иной странице на старой версии http сервер будет отвечать, что она переехала на новый адрес с https.
Закрываем файл и сохраняем его. В принципе, конфиг должен будет подцепиться автоматически, но можно и перезапустить веб-сервер для верности.
set-os.ru
Что дает переход с HTTP на HTTPS?
Внедрение нового протокола безопасности для сайта может происходить по трем причинам:
- Конфиденциальность. Интернет — это открытая среда, и https здесь защищает коммуникации между сторонами. При отсутствии HTTPS владельцу точки доступа будут доступны приватные данные: кредитные карты (при совершении покупки в интернет-магазине, например).
- Целостность. Протокол https гарантирует, что информация будет доставлена адресату в нетронутом виде. Например, владелец Wi-Fi сможет вставлять на сайт «левую» рекламу, изменять внешний вид сайта и сжимать картинки для экономии трафика. Но если на сайте есть HTTPS, то это гарантирует, что сайт не будет изменен.
- Подлинность. Сертификат гарантирует, что посещаемый сайт действительно является подлинным.
То есть протокол https гарантирует, что вся информация будет передана целиком и точно по адресу. Никто не сможет изменить информацию при ее передаче. Особенно это актуально для различных интернет-магазинов и сервисов оплаты.
Также сертификация оказывает положительное влияние на продвижение сайта в поисковых системах. Поэтому многие вебмастера получают сертификаты безопасности для своих сайтов. Но после получения сталкиваются с проблемой — настройкой. Ведь недостаточно просто получить сертификат, нужно правильно перенаправить весь трафик на новый домен и «рассказать» об этом поисковым системам. Как это сделать?
Подготовка
Перед тем как создать редирект с http на https, необходимо подготовить сайт. Самое первое действие — сделать внутренние ссылки относительными. То есть необходимо убрать вначале ссылки символы «http://». Также можно добавить букву «s» к указанным символам, чтобы все ваши статьи ссылались на версию сайта с протоколом безопасности, но это необходимо делать после окончательного перехода сайта.
Сделать это несложно. Сейчас существует много программ для разных систем управления контентом, которые за пару секунд сделают все ссылки на сайте относительными. Например, для популярной системы Wodpress есть плагин HTTP / HTTPS Remover.
Проверка
После установки сертификата и настройки внешних ссылок желательно проверить, правильно ли «стал» сертификат. Сделать это можно с помощью специального сервиса ssllabs.com. Там нужно вписать доменное имя сайта нажать на кнопку Sabmit, после чего система покажет оценку настройки соединения и даст советы относительно решения возможных проблем. Если параметр Overall Rating будет иметь оценку «A», то значит, все отлично и ваш сертификат безопасности хорош.
Настройка редиректа с http на https
Поисковые системы воспринимают сайты с сертификатом 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. Это не очень сложно и я ничего нового не расскажу кто это знает, но для новичка — будет полезным. В своей теме «Перенаправление 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
Редиректы
Редирект наверное лучше всего настроить через .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 %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Еще вариант:
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
Вызвать такой код нужно как можно раньше, до подключения плагинов. И наверное перед его вызовом нужно сделать какие-то проверки. Этот код — это просто пример…
Плагины
Как обычно, можно использовать плагины (я их не пробовал)…
wp-kama.ru
490.00 руб
Скачать/Купить дополнение
SEO HTTPS FIX PRO
Информация и документация о модуле
Демо: http://oc2.opencartadmin.com/admin/index.php?route=module/httpsfix
Дополнение предназначено для корректного переноса Opencart на HTTPS протокол, и устранения проблем, связанных с этим процессом.
Что умеет это дополнение.
1. Заставляет Opnecart корректно отдавать контент одновременно по обеим протоколам (http и https)
2. Функционал переноса CSS и JS скриптов к конец исходного кода HTML страницы (PageSpeed Insights рекомендации) и минимизация HTML кода страницы
3. Гибко устранять «хвосты» связанные с разными вариантами ввода внешних и внутренних адресов.
Так например при переезде на HTTPS необходимо изменить протокол подключения
к внешним CDN например с http://cdn.google.com на https://cdn.google.com
Модуль позволяет это сделать в два клика.
В процессе наполнения контентом и верстки шаблонов магазина, зачастую встречаются ссылки
как на внутренние так и на внешние ресурсы совершенно разного вида.
Например если у вас встречаются ссылки www.vash_site.ru/link_1 и без vash_site.ru/link_1 в контенте магазина,
автоматичски в https преобразуются только ссылки, которые вы определилил как основное зеркало.
А все остальные остануться старые и бразуеры будут выписывать warning и не включать зеленый замочек.
При помощи модуля, вы сможете создать любые правила для любых преобразований внутренних ссылок в магазине как внутренних так и внешних.
Теперь вам не нужно судорожно искать, где же вы в шаблоне еще не поменяли http на https,
достаточно посмотреть в консоль и написать в модуле соответсвующее правило.
После склейки http и https, советую в htaccess настроить редирект 301 с http на https, чтобы ссылки магазина работали только по https протоколу
Для правильной работы фикса у вас должны отличаться HTTP_CATALOG и HTTPS_CATALOG в config.php.
Также мод фиксит проблемы определения протокола, при нестандартных настройках связки nginx => apache.
Техническая поддержка
Добавил markimax Добавлено 22.12.2016 Категория SEO, карта сайта, оптимизация Системные требования PHP 5.3+Если OC 1.5.x — vQmod Сайт разработчика https://opencartadmin.com Старая цена Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 2.3
2.2
2.1
2.0
1.5.6.4
1.5.6.3
1.5.6.2
1.5.6.1
1.5.6
1.5.4.1
1.5.3.1 ocStore 2.3
2.2
2.1
1.5.5.1.2
1.5.5.1.1
1.5.5.1
1.5.4.1.2
1.5.4.1.1
1.5.4.1
1.5.3.1
1.5.2.1
1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
Opencart.pro 2.1
OcShop 2.0.3.х
OcShop 1.5.6.4.х
opencartforum.com
Что такое редирект с http на https?
Очень важно, чтобы после перехода на защищенный протокол все ссылки Вашего сайта работали по https. В этом и заключается весь смысл надежности передачи данных. В ином случае браузер будет выдавать ошибки, что на сайте присутствует смешанный контент. Это означает, что некоторые данные (часто изображения, js-скрипты, css-стили) будут передаваться по незащищенному протоколу (http). Отметим, что от корректного перехода на https зависит сохранность данных всех Ваших пользователей.
Как выполнить редирект с http на https в WordPress?
Весь процесс перевода WordPress-сайта на https описывать не будем, так как это было подробно рассмотрено в одной из наших статей. Остановимся лишь на последнем его этапе — корректной переадресации всех http-ссылок сайта на https.
Наиболее простым и надежным способом является использование плагина Clearfy Pro, который без каких-либо проблем гарантирует правильную переадресацию с http на https для всех разделов и элементов Вашего сайта. Для этого достаточно в админ-части перейти Clearfy Pro и на вкладке SEO активировать настройку Редирект с http на https.
Рассмотрим также и другие, менее удобные, способы переадресации на https, которые имеют один существенный недостаток — предоставляются в виде дополнительных плагинов.
Способ 1. Плагин Easy HTTPS Redirection
Easy HTTPS Redirection — отдельный плагин для осуществления редиректа с http на https. После его установки и активации следует включить процесс редиректа. Для этого необходимо перейти в раздел Настройки -> HTTPS Redirection и активировать настройку Enable automatic redirection to the «HTTPS», после чего нажать кнопку Сохранить изменения.
Способ 2. Плагин Force HTTPS
Force HTTPS — плагин, который сразу после установки и активации будет выполнять переадресацию всех страниц Вашего сайта на защищенный протокол https. В настройках не нуждается. Следует отметить, что после его активации все разделы сайта, включая админ-часть, будут доступны через https. Для этого перед его установкой необходимо еще раз удостовериться о наличии SSL-сертификата для домена Вашего сайта.
wpschool.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