Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Htaccess с http на https

4 мин для чтения Перенаправление HTTP на HTTPS в Apache

Главное меню » Linux » Перенаправление HTTP на HTTPS в Apache

Если вы являетесь владельцем сайта или системным администратором, скорее всего, вы имеете дело с Apache на регулярной основе. Одна из наиболее распространенных задач, которые вы, вероятно, будете выполнять, – это перенаправление трафика HTTP на защищенную (HTTPS) версию вашего сайта.

В отличие от HTTP, где запросы и ответы отправляются и возвращаются в виде открытого текста, HTTPS использует TLS/SSL для шифрования связи между клиентом и сервером.

Есть много преимуществ использования HTTPS над HTTP, таких как:

  • Все данные зашифрованы в обоих направлениях. В результате конфиденциальная информация не может быть прочитана в случае перехвата.
  • Google Chrome и все другие популярные браузеры будут помечать ваш сайт как безопасный.
  • HTTPS позволяет использовать протокол HTTP/2, что значительно повышает производительность сайта.
  • Google предпочитает сайты HTTPS. Ваш сайт будет оцениваться лучше, если будет обслуживаться через HTTPS.

В этой статье рассказывается, как перенаправить HTTP-трафик на HTTPS в Apache.

Есть несколько способов перенаправить на HTTPS в Apache. Если у вас есть root-доступ к серверу Linux, на котором работает Apache, предпочтительным способом является настройка перенаправления в файле конфигурации виртуального хоста домена. В противном случае вы можете настроить перенаправление в файле .htaccess домена.

Некоторые панели управления, такие как cPanel, позволяют принудительно перенаправлять HTTPS несколькими щелчками мыши.

Перенаправить HTTP на HTTPS с помощью виртуального хоста

Apache Virtual Hosts определяет настройки одного или нескольких доменов, размещенных на сервере. В директиве виртуального хоста вы можете указать корневой каталог документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL, настроить перенаправление и многое другое.

Обычно, когда сертификат SSL установлен в домене, у вас будет две директивы виртуального хоста для этого домена. Первый – для HTTP-версии сайта на порту 80, а второй – для HTTPS-версии на порту 443.

В дистрибутивах Red-Hat, таких как CentOS и Fedora, файлы виртуальных хостов хранятся в /etc/httpd/conf.d. В Debian и его производных, таких как Ubuntu, файлы хранятся в каталоге /etc/apache2/sites-available.

Чтобы перенаправить веб-сайт на HTTPS, используйте директиву Redirect, как показано в примере ниже:

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

  • VirtualHost *:80 – Сервер Apache прослушивает входящие соединения через порт 80 (HTTP) для указанного домена.
  • VirtualHost *:443 – Сервер Apache прослушивает входящие соединения через порт 443 (HTTPS) для указанного домена.

Директивы ServerName и ServerAlias с указанием доменных имен виртуального хоста. Убедитесь, что вы заменили его своим доменным именем.

Выделенная строка Redirect permanent / https://example.ru/ внутри виртуального хоста HTTP перенаправляет трафик на HTTPS-версию сайта.

Как правило, вы также хотите перенаправить HTTPS www-версию сайта на не-www или наоборот. Вот пример конфигурации:

Код внутри виртуального хоста HTTPS (выделенные строки) проверяет, содержит ли заголовок запроса домен www и перенаправляет его на версию без www.

Всякий раз, когда вы вносите изменения в файлы конфигурации, вам нужно перезапустить или перезагрузить службу Apache, чтобы изменения вступили в силу:

  • Debian и Ubuntu:
  • CentOS и Fedora:

Перенаправить HTTP на HTTPS, используя .htaccess

Файл конфигурации .htaccess для каждого каталога для веб-сервера Apache. Этот файл можно использовать для определения того, как Apache обслуживает файлы из каталога, в котором находится файл, а также для включения/отключения дополнительных функций.

Обычно файл .htaccess помещается в корневой каталог домена, но вы можете иметь другие файлы .htaccess в подкаталогах.

Этот метод требует, чтобы модуль mod_rewrite был загружен на сервер Apache. Этот модуль загружается по умолчанию на большинстве серверов. Если возможно, предпочтите создание перенаправления на виртуальном хосте, потому что это проще и безопаснее.
Чтобы перенаправить весь HTTP-трафик на HTTPS, откройте корневой файл .htaccess и добавьте в него следующий код:

Вот что означает код:

  • RewriteEngine On – включает возможности перезаписи.
  • RewriteCond % off – проверяет HTTP-соединение и, если условие выполнено, выполняется следующая строка.
  • RewriteRule ^(.*)$ https://example.ru/$1 [L,R=301]- перенаправить HTTP на HTTPS с кодом состояния 301 (постоянно перемещено). Убедитесь, что вы изменили доменное имя.

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

При редактировании файла .htaccess вам не нужно перезагружать сервер, потому что Apache читает файл при каждом запросе.

Вывод

В Apache предпочтительным способом перенаправления HTTP на HTTPS является настройка перенаправления 301 на виртуальном хосте домена.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

301 редирект (переадресация) через .htaccess – на все случаи жизни

Три важных совета и семнадцать конкретных примеров установки 301 переадресации страниц через htaccess!

Советы

Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.

Избегайте последовательных редиректов (двух, трех и т.д.). Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.

Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте – http://www.bertal.ru.

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

Второй способ сделать редирект – это переадресация через php

Правила переадресаций

1. 301 редирект с одной страницы на другую

Самый простой вариант

2. 301 редирект с www на без www (главное зеркало – домен без www)

3. 301 редирект с без www на www (главное зеркало – домен с www)

4. 301 редирект со страниц со слешем на без слеша (весь сайт)

5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)

6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

7. Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы

9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы

10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

Пример: типа site.ru/index.php?n=1 на site.ru/?n=1

12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка

13. 301 редирект url с GET параметрами (динамический URL) на статический

1 вариант (простой адрес с GET параметром)

2 вариант (со страницы и GET параметром)

14. Все страницы одного домена на главную страницу другого домена

15. Каждая страница одного домена на такой же адрес другого url

16. Редирект с протокола http на https.

Если возникает циклический редирект, то воспользуйтесь этим вариантом:

Для Битрикс-сайтов на хостинге reg.ru

Для сертификатов https c Cloudflare:

17. Редирект с протокола https на http.

Обратный редирект, если перестали использовать SSL сертификат.

Редирект на https для разных хостингов (код для htaccess 301 редирект)

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

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

Основы перевода на https и какие проблемы могут быть

Невозможно сказать, что придется делать с тем или иным сайтом для перевода на https, так как у всех в процессе перевода взникают разные неприятности. Как правило хороший сайт, с правильно сделанным шаблоном требует минимального вмешательства и достаточно просто заменить ссылки в базе данных на https (это делается только в случае если на сайте используются абсолютные ссылки когда все указывается с протоколом http), указать ссылку на карту сайта в robots и настроить 301 редирект на https всех страниц в htaccess, не забывая при этом сделать исключение для robots.txt что бы он был доступен по обоим протоколам и http и https как того требудет яндекс.

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

Нашей командой было переведено за последний год на https уже более 500 сайтов и не редко при переводе возникает вопрос какой код редиректа ставить в htaccess. Казалось бы все просто и таких кодов пално на просторах интернета, но не тут то было по причине того, что каждый хостинг использует свои типы редиректов и они отличаются так как на всех хостингах разная конфигурация вебсервера. Не каждый хостинг публикует свои коды в справке и иногда приходится писать в поддержку, что бы они сообщили какой тип кода используется на вебсервере либо делать все методом проб. Мы собрали множество кодов редиректов с разных хостингов и хотим предоставить их в данной статье.

Что бы не писать коды в самой статье мы все занесли в txt файл который откроется без проблем на любом устройстве. В файле представлены коды редиректов для таких хостингов как: webhost1 (вебхост1), 1gb (1гб), mchost, timeweb (таймвеб), sprinthost (спринтхост), nic (ник), shneider-host, zomro, sweb, link-host, jino, beget, hostia, masterhost, hostland.

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

Имя файла: Коды редиректов на https

Как проверить сайт после перевода и редирект на https

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

  1. Покупка и установка ssl сертификата на хостинге. Многие хостинги предоставляют бесплатные ssl сертификаты которые ставятся просто нажатием кнопки.
  2. Без включения редиректов проверить сайт что бы он был доступен по протоколу https. Делается это для того что бы сайт оставался работоспособным на время перевода на https, так как на многих сайтах пока не внесешь изменения в конфигурационные файлы все скрипты, стили и картинки грузятся по http и соответсвенно сайт выглядит ужасно. Что необходимо менять зависит от движка и есть такие где обязательно необходимо править конфиги, а есть где сайт идеально работает и достаточно просто установить редирект и настроить robots и карту сайта.
  3. После того как привели в порядок и все скрипты и стили подключены как положено по https обязательно проверьте ссылки в базе данных, что бы они были с https, так как если этого не сделать, то некоторые страницы сайта всегда будут отвечать редиректами для поисковиков. Объясняется это тем что поисковики гуляют по сайту и переходят по ссылкам и если они в меню, и других местах сайта стоят без https то всегда будет осуществляться редирект на https который Вы позже установите в htaccess. На многих движках ссылки в базе данных хранятся в относительном виде без указания протокола и домена, там где они сохраняются в абсолютном виде можно произвести замену ссылок выгрузив базу данных или если позволяет cms найти соответствующий плагин для поиска и замены ссылок в базе данных.
  4. После того как все заменили и Ваш сайт открывается по https без каких либо предупреждений в браузере и консоли можно отредактировать карту сайта. Если у Вас карта динамическая генерируемая движком как правило все ссылки в ней уже будут с https, но на некоторых движках необходимо в настройках указать тип протокола при генерации карты.
  5. Редактируем robots.txt добавляя в него https в ссылку на карту сайта. Секцию host отменили давно по этому у кого она есть можете удалить.
  6. Далее установливаем редирект в файл .htaccess который подходит для Вашего хостинга.
  7. Проверяет корректность работы редиректа на https и для этого в поиске пишем site:adres-vachego-site.ru (после : пишите адрес Вашего сайта). В поиске Вы увидите все страницы Вашего сайта без https и при клике на любую из них у Вас должен сработать редирект на https. Обязательно проверьте в любом инструменте к примеру «ответ сервера яндекс» корректность редиректа. Для этого отройте его и установите ссылку на Ваш сайт с http:// и нажмите проверить. Редирект должен быть именно 301 который говорит поисковикам о смене адреса страницы. Бывают такие хостинги которые ошибочно ставят 302 редирект который говорит о временном перемещении страницы, Вам нужен именно 301.
  8. Далее идем в яндекс вебмастер и в разделе индексирование — переезд сайта делаем переезд на https. Добавлять www или убирать решайте сами. Но не забудьте что если Вы добавляете www или убираете в htaccess так же должен быть код редиректа с www либо не без него, что бы сайт всегда был доступен только по одному адресу. Когда Вы подадите заявку яндек покажет сообщение.
  9. В google вебмастере нужно просто добавить сайт с https и соответственно карту сайта. Старый с http позже можно будет удалить.

Если вдруг Вы столкнетесь с труностями при переводе пишите мы постараемся Вам помочь.

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

Если Вам попадется хостинг для которого у нас нет кода редиректа напишите нам и мы внесем его в список.

Настраиваем редирект с http на https

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

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

Навигация по статье:

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

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

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

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

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

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

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

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

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

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

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

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

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

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

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

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

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

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

Делаем редирект на HTTPS в WordPress — 3 простых шага для создания 301 переадресации

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

Что такое протокол HTTPS

Протокол HTTPS (расшифровка Hypertext Transport Protocol Secure) — это технология, шифрующая информацию между сайтом и пользователем. При вводе информации посетителем и выводе ее на экран, шифруется все, что дает преграду злоумышленникам похитить личные данные.

Технологии применяемые в HTTPS

  • Шифрование. Каждое действие шифруется
  • Безопасность. При изменении и добавлении новых данных они сохраняются
  • Аутентификация. Блокирует небезопасные перенаправления

Почему важно перейти на HTTPS

Причин для перехода на HTTPS может быть несколько.

  • Первая — это небольшой приоритет в выдаче поисковых систем, сообщаете ПС что вы заботитесь о безопасности и конфиденциальности посетителей.
  • Вторая — при сборе контактов (в той же форме комментирования), нужно применять протокол, так как перехватить информацию легко. Часто посетители авторизуются на сайте при помощи социальных сетей.
  • Третья — оплата в интернет магазинах. Если имеется интернет магазин без SSL — сертификата он будет заблокирован и помечен, как небезопасный в любом браузере. Google и Яндекс давно отслеживают такие ресурсы и как минимум не дают им первые позиции, и как максимум помечают как опасные.

Общие принципы перехода на HTTPS

Принцип перехода прост, вы покупаете, либо берете бесплатный SSL — сертификат, устанавливаете на сайт (сами или помогает поддержка хостинга), настраиваете элементы для корректного отображения и радуетесь зеленой полоске в браузере. По шагам выглядит так:

  1. Выбрать платный или бесплатный серитификат
  2. Получить персональный ключ
  3. Оформить файл с протоколом в онлайн — центре сертификации
  4. Установить и привязать сертификат к домену
  5. Настроить движок и изменить ссылки

Изменение префиксов в панели вордпресса

Для редиректа на HTTPS главной страницы в панели WordPress заходим в настройки, в раздел общие и прописываем там дополнительную букву S, как показано на скриншоте. Теперь заходите на сайт по протоколу, по заранее известным логину и паролю.

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

Перенаправление остальных элементов

Чтобы сделать 301 редирект остальных элементов (не записей), картинок, ссылок, таблиц и т.д. нужно установить ненадолго плагин Velvet Blues Update URLs . Чтобы установить плагин:

  • Перейдите в раздел плагины > добавить новый
  • В поле поиск введите название
  • На карточке нажмите кнопку активировать

Устанавливаем и вводим настройки, заходим в раздел инструменты > Update URLs. В поле Old URL вводим адрес сайта без протокола, а New URL с ним.

Далее переходим ко второму шагу и отмечаем все галочки кроме последней. Этим действием перезапишем все имеющиеся на сайте объекты, в которых могут содержаться URL без протокола, и нажимаем Update.

Инструмент начнет работу, и после покажет сводную таблицу сколько элементов изменено. После проделанной операции, можно деактивировать и удалить его из WordPress.

Редирект на HTTPS 301 в .htaccess

Завершающим этапом является добавление в WordPress 301 перенаправления в файле htaccess. Он регулирует работу Apache, определим существует ли этот файл на вашем сайте.

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

Идем в корень WordPress и смотрим. Если существует, то открываем его для редактирования, если нет, то создаем. Нужно подключиться к сайту через FTP соединение, мы используем FileZilla. Войдя в корневой каталог (определяем корень по папкам wp-content и wp-admin), находим htaccess и кликом правой кнопкой мыши выбираем «Просмотр/Правка».

В появившемся окне программы, вводим конфигурацию написанную ниже после begin wordpress или перед end wordpress. Сохраняем нажатием CTRL+S , либо через меню файл-сохранить. Код подходит и для мультисайта с поддоменами.

После сохранения изменений FileZilla запросит разрешение на перезапись файла htaccess, соглашаемся и программа начнет процесс загрузки.

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

С помощью плагина Easy HTTPS Redirection

Наиболее простой метод установить плагин, мы советуем Easy HTTPS Redirection. В данном случаем остальные действия делать не нужно. Установив, переходим к настройке.

  • Enable automatic redirection — включает переадресацию
  • Apply HTTPS redirection on — первый пункт перенаправляет весь ресурс, во втором можно выставить для отдельных страниц
  • Force resources to use HTTPS URL — данная галочка может дать множество битых ссылок, она принудительно перезаписывает ссылки в статьях. Не все сервисы и ресурсы перешли на безопасное соединение.

Какие проблемы могут возникнуть при переходе на HTTPS

Проблем при переходе на HTTPS немного. Первая причина не убраны со страницы все исходящие и внутренние ссылки с протоколом HTTP. Далее редиректы, неправильно прописанные в htaccess. Не знание специфики WordPress, что и где нужно менять. Что делать в таких ситуациях:

  1. Проверить всё ли правильно сделано, в админке и в файле htaccess
  2. Если всё хорошо, то проверить работу во всех браузерах, хром, опера, мозилла и т.д. Возможно проблема в неисправном браузере либо в расширениях, которые не дают сработать редиректу.
  3. Возможны неправильные настройки сервера или SSL — сертификата, с этой проблемой скорее всего придется обратиться в поддержку хостинга. Если ошибка не на их стороне, то к поставщикам сертификата.

Если удобнее учится по видео, то смотрите наш обучающий ролик.

Чеклист всех операций

  • Меняем в панели HTTP на HTTPS
  • Заменяем все ссылки на новые с буквой S
  • Прописываем правила переадресации в htaccess

Мы смогли поставить редирект на HTTPS в cms WordPress и сертификат работает правильно. После всех операций, сайт должен быстро проиндексироваться поисковыми системами и обновлен в выдаче.

Читать еще:  Status access violation
Ссылка на основную публикацию
Adblock
detector