Настроить в WordPress редирект на HTTPS за 5 минут
После подключения SSL — сертификата, необходимо правильно настроить в WordPress редирект на https. В противном случае будут плачевные последствия.
Начальные знания
27.1k.
Сделаем при помощи нескольких функций: настройка параметров в админке, назначение правил в htaccess и установка плагина. Если этого не сделать, то сайт будет открываться сразу по двум адресам, что приведет к появлению дублей и понижению позиций. В статье я расскажу 3 простых шага, которые помогут избежать этой ситуации.
Содержание
- Что такое протокол HTTPS
- Почему важно перейти на HTTPS
- Общие принципы перехода на HTTPS
- Изменение префиксов в панели вордпресса
- Перенаправление остальных элементов
- Редирект на HTTPS 301 в .htaccess
- С помощью плагина Easy HTTPS Redirection
- Какие проблемы могут возникнуть при переходе на HTTPS
- Чеклист всех операций
Протокол HTTPS (расшифровка Hypertext Transport Protocol Secure) — это технология, шифрующая информацию между сайтом и пользователем. При вводе информации посетителем и выводе ее на экран, шифруется все, что дает преграду злоумышленникам похитить личные данные.
Технологии применяемые в HTTPS
- Шифрование. Каждое действие шифруется
- Безопасность. При изменении и добавлении новых данных они сохраняются
- Аутентификация. Блокирует небезопасные перенаправления
Причин для перехода на HTTPS может быть несколько.
- Первая — это небольшой приоритет в выдаче поисковых систем, сообщаете ПС что вы заботитесь о безопасности и конфиденциальности посетителей.
- Вторая — при сборе контактов (в той же форме комментирования), нужно применять протокол, так как перехватить информацию легко. Часто посетители авторизуются на сайте при помощи социальных сетей.
- Третья — оплата в интернет магазинах. Если имеется интернет магазин без SSL — сертификата он будет заблокирован и помечен, как небезопасный в любом браузере. Google и Яндекс давно отслеживают такие ресурсы и как минимум не дают им первые позиции, и как максимум помечают как опасные.
Принцип перехода прост, вы покупаете, либо берете бесплатный SSL — сертификат, устанавливаете на сайт (сами или помогает поддержка хостинга), настраиваете элементы для корректного отображения и радуетесь зеленой полоске в браузере. По шагам выглядит так:
- Выбрать платный или бесплатный серитификат
- Получить персональный ключ
- Оформить файл с протоколом в онлайн — центре сертификации
- Установить и привязать сертификат к домену
- Настроить движок и изменить ссылки
Для редиректа на HTTPS главной страницы в панели WordPress заходим в настройки, в раздел общие и прописываем там дополнительную букву S, как показано на скриншоте. Теперь заходите на сайт по протоколу, по заранее известным логину и паролю.
Меняем адрес сайта в админке WordPressПеренаправление остальных элементовПосле смены адреса и подключив перенаправление при входе в админ-панель придется по новой вводить логин и пароль. Совет если не помните то заранее их восстановите.
Чтобы сделать 301 редирект остальных элементов (не записей), картинок, ссылок, таблиц и т.д. нужно установить ненадолго плагин Velvet Blues Update URLs. Чтобы установить плагин:
- Перейдите в раздел плагины > добавить новый
- В поле поиск введите название
- На карточке нажмите кнопку активировать
Устанавливаем и вводим настройки, заходим в раздел инструменты > Update URLs. В поле Old URL вводим адрес сайта без протокола, а New URL с ним.
Перезапись ссылокДалее переходим ко второму шагу и отмечаем все галочки кроме последней. Этим действием перезапишем все имеющиеся на сайте объекты, в которых могут содержаться URL без протокола, и нажимаем Update.
Выставляем элементы ссылок для измененияИнструмент начнет работу, и после покажет сводную таблицу сколько элементов изменено. После проделанной операции, можно деактивировать и удалить его из WordPress.
Таблица количества измененных URLРедирект на HTTPS 301 в .htaccessЗавершающим этапом является добавление в WordPress 301 перенаправления в файле htaccess. Он регулирует работу Apache, определим существует ли этот файл на вашем сайте.
Apache — оболочка на чем работает сервер, это как на компьютере стоит Windows. Некоторые хостинги пренебрегают добавлением в репозиторий ресурса, пытаясь управлять с помощью сервера.
Идем в корень WordPress и смотрим. Если существует, то открываем его для редактирования, если нет, то создаем. Нужно подключиться к сайту через FTP соединение, мы используем FileZilla. Войдя в корневой каталог (определяем корень по папкам wp-content и wp-admin), находим htaccess и кликом правой кнопкой мыши выбираем «Просмотр/Правка».
файл .htaccess в программе FileZillaВ появившемся окне программы, вводим конфигурацию написанную ниже после begin wordpress или перед end wordpress. Сохраняем нажатием
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]Куда вставлять код для редиректа HTTPS
После сохранения изменений FileZilla запросит разрешение на перезапись файла htaccess, соглашаемся и программа начнет процесс загрузки.
Это позволит имеющиеся страницы WordPress перевести на https протокол и выводить их автоматически с правильным префиксом. Для проверки работы, зайдите на любую страницу и сотрите букву S, нажмите enter, если редирект с http на https WordPress сработал, то продолжаем.
С помощью плагина Easy HTTPS RedirectionНаиболее простой метод установить плагин, мы советуем Easy HTTPS Redirection. В данном случаем остальные действия делать не нужно. Установив, переходим к настройке.
разбор панели Easy HTTPS Redirection- Enable automatic redirection — включает переадресацию
- Apply HTTPS redirection on — первый пункт перенаправляет весь ресурс, во втором можно выставить для отдельных страниц
- Force resources to use HTTPS URL — данная галочка может дать множество битых ссылок, она принудительно перезаписывает ссылки в статьях. Не все сервисы и ресурсы перешли на безопасное соединение.
Проблем при переходе на HTTPS немного. Первая причина не убраны со страницы все исходящие и внутренние ссылки с протоколом HTTP. Далее редиректы, неправильно прописанные в htaccess. Не знание специфики WordPress, что и где нужно менять. Что делать в таких ситуациях:
- Проверить всё ли правильно сделано, в админке и в файле htaccess
- Если всё хорошо, то проверить работу во всех браузерах, хром, опера, мозилла и т. д. Возможно проблема в неисправном браузере либо в расширениях, которые не дают сработать редиректу.
- Возможны неправильные настройки сервера или SSL — сертификата, с этой проблемой скорее всего придется обратиться в поддержку хостинга. Если ошибка не на их стороне, то к поставщикам сертификата.
Если удобнее учится по видео, то смотрите наш обучающий ролик.
Чеклист всех операций- Меняем в панели HTTP на HTTPS
- Заменяем все ссылки на новые с буквой S
- Прописываем правила переадресации в htaccess
Мы смогли поставить редирект на HTTPS в cms WordPress и сертификат работает правильно. После всех операций, сайт должен быстро проиндексироваться поисковыми системами и обновлен в выдаче.
Работает ли микроразметка в Вашем плагине?
Судя по инструментам проверки в Google — да!
Пожалуйста, оцените материал:
Валентин
Давно занимаюсь и разрабатываю сайты на WordPress. Считаю что лучшего решения для ведения бизнеса не найти, поэтому считаю долгом делиться информацией с остальными.
Редирект для сайта на WordPress: через плагин или htaccess
Редиректы для сайта на CMS WordPress можно выполнить добавив записи в файл htaccess, ознакомится с чем можно в статье ниже.
- Через плагин;
- Через htaccess;
- Как проповерить.
301 редирект для сайта на WordPress
Для этого переходим в административную панель сайта во вкладку «Плагины»-«Добавить новый», где в поиске вводим «redirection».
Устанавливаем появившийся плагин (автор John Gadley) и активируем его.
Переходим в настройки.
Соглашаемся с базовыми настройками.
Система проверит сайт и завершаем настройку.
Дожидаемся установки и переходим в интерфейс плагина.
Чтобы сделать редирект с одной страницы на другую потребуется перейти в «Редирект».
Далее «Добавляем новый».
Далее заполняем:
- Исходный URL;
- Целевой URL.
Все готово в списке появится.
Редирект с http на https для WordPressЧтобы включить настройку потребуется перейти в вкладку «Сайт» и включить опцию:
Force a redirect from HTTP to HTTPS
С WWW на без WWW и наоборотВ этой же вкладке сайт необходимо поставить галочку у нужного пункта.
Важно! По умолчанию настройка не делает никаких изменений в этом плане.
Как сделать редирект через файл htaccessДля того, чтобы перенаправить пользователя с одной страницы на другую требуется использовать следующую комбинацию:
Redirect 301 site. poddomen.domain.ru$ [NC]
RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA]
Для этого можно использовать инструмент проверки ответа сервера Яндекса:
https://webmaster.yandex.ru/tools/server-response/
Здесь вводим адрес первой страницы и видим следующее:
Как видим правило применилось и работает корректно.
htaccess — Документация WordPress.org
.htaccess — это распределенный файл конфигурации, с помощью которого Apache обрабатывает изменения конфигурации для каждого каталога.
WordPress использует этот файл для управления тем, как Apache обслуживает файлы из своего корневого каталога и его подкаталогов. В частности, WP изменяет этот файл, чтобы иметь возможность обрабатывать красивые постоянные ссылки.
Эту страницу можно использовать для восстановления поврежденного файла .htaccess (например, некорректно работающего плагина).
# НАЧАТЬ WordPress RewriteEngine включен RewriteRule . ([_0-9- [Л] Правило перезаписи. index.php [Л] # ЗАВЕРШИТЬ Мультисайт WordPress
Опции
Любые опции, которым предшествуют + , добавляются к текущим действующим опциям, а любые опции, которым предшествуют – , удаляются из действующих опций.
Возможные значения директивы Options — любая комбинация:
Нет
Все параметры отключены.
Все
Все опции, кроме MultiViews. Это значение по умолчанию.
ExecCGI
Выполнение сценариев CGI с использованием mod_cgi разрешено.
FollowSymLinks
Сервер будет переходить по символическим ссылкам в этом каталоге.
Включения
Серверные включения, предоставляемые mod_include, разрешены.
Включает NOEXEC
Включения на стороне сервера разрешены, но команды #exec cmd и #exec cgi отключены.
Индексы
URL-адрес сопоставляется с каталогом, а не DirectoryIndex, форматированным списком каталога.
MultiViews
Контент, согласованный «MultiViews» разрешены с использованием mod_negotiation.
SymLinksIfOwnerMatch
Переходите только по символическим ссылкам, если цель принадлежит тому же идентификатору пользователя, что и ссылка.
Это отключит все опции, а затем включит только FollowSymLinks, что необходимо для mod_rewrite.
Опции Нет Параметры
DirectoryIndex
DirectoryIndex устанавливает файл, который Apache будет обслуживать, если будет запрошен каталог.
Можно указать несколько URL-адресов, и в этом случае сервер вернет первый найденный.
DirectoryIndex index.php index.html /index.php
DefaultLanguage
DefaultLanguage приведет к тому, что все файлы, с которыми еще не связан определенный языковой тег, будут использовать это.
Язык по умолчанию en
Кодировка по умолчанию
Установите кодировку символов по умолчанию, отправляемую в заголовке HTTP. См.: Установка информации о кодировке в .htaccess
AddDefaultCharset UTF-8
Установить кодировку для определенных файлов
AddType 'text/html; кодировка=UTF-8' .html
Набор для определенных файлов
AddCharset UTF-8 .html
ServerSignature
Директива ServerSignature позволяет настроить завершающую строку нижнего колонтитула для документов, созданных сервером. При необходимости добавьте строку, содержащую версию сервера и имя виртуального хоста, на страницы, созданные сервером (внутренние документы об ошибках, списки каталогов FTP, вывод mod_status и mod_info и т. д., но не документы, созданные CGI, или пользовательские документы об ошибках).
On
добавляет строку с номером версии сервера и ServerName обслуживающего виртуального хоста
Off
подавляет строку нижнего колонтитула
ссылочного документа
SetEnv SERVER_ADMIN admin@site. com Электронная почта для подписи сервера
Принудительная загрузка файлов
Нижеследующее приведет к тому, что любые запросы на файлы, оканчивающиеся на указанные расширения, не будут отображаться в браузере, а вместо этого вызовут диалоговое окно «Сохранить как», чтобы клиент мог загрузить.
Приложение AddType/октетный поток .avi .mpg .mov .pdf .xls .mp4
Сжатие HTTP
Директива AddOutputFilter сопоставляет расширение имени файла с фильтрами, которые будут обрабатывать ответы от сервера перед их отправкой клиенту. Это дополнение к любым фильтрам, определенным в другом месте, включая SetOutputFilter и AddOutputFilterByType. Это сопоставление объединяется с уже действующими, переопределяя любые сопоставления, которые уже существуют для того же расширения. 9Mozilla/4\.0[678] без gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Принудительное сжатие для определенных файлов
SetOutputFilter DEFLATE
Директива Header позволяет отправлять заголовки HTTP для каждого запроса или только для определенных файлов. Вы можете просматривать HTTP-заголовки сайтов с помощью Firebug, Chrome Dev Tools, Wireshark или онлайн-инструмента.
Набор заголовков X-Pingback "http://www.askapache.com/xmlrpc.php" Заголовок устанавливает Content-Language "en-US"
Это удалит заголовки HTTP, используя всегда будет очень стараться их удалить.
Заголовок не установлен Pragma Заголовок всегда отключен WP-Super-Cache Заголовок всегда отключается
Защита паролем при входе в систему
Это очень полезно для защиты файла wp-login.php . Вы можете использовать этот генератор htpasswd.
Базовая аутентификация
AuthType Базовая AuthName "Защищено паролем" AuthUserFile /полный/путь/к/.htpasswd Требовать действительного пользователя Удовлетворить все
Дайджест-аутентификация
AuthType Дайджест AuthName "Защищено паролем" AuthDigestDomain /wp-login.php https://www. askapache.com/wp-login.php AuthUserFile /полный/путь/к/.htpasswd Требовать действительного пользователя Удовлетворить все
Требовать определенный IP-адрес
Это способ разрешить доступ только к определенным IP-адресам.
ErrorDocument 401 по умолчанию ErrorDocument 403 по умолчанию Отклонить заказ, разрешить Запретить от всех Разрешить с локального хоста 198.101.159.98
Защита конфиденциальных файлов
Это запрещает любой веб-доступ к вашему файлу wp-config, error_logs, php.ini и htaccess/htpasswds.
Запретить заказ, разрешить Запретить от всех
Требовать SSL
Это заставит использовать SSL и потребует точное имя хоста, иначе будет перенаправлено на версию SSL. Полезно в файле /wp-admin/.htaccess
.
SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq "www.wordpress.com" Документ об ошибке 403 https://www.wordpress.com
- Official Apache HTTP Server Tutorial: . htaccess files
- Official Htaccess Directive Quick Reference
- Htaccess Tutorial
- Google PageSpeed for Developers
- Stupid Htaccess Tricks
- Advanced Mod_Rewrite
- htaccess for subdirectories
- Using Permalinks
- Changing Права доступа к файлам
- Навыки оболочки UNIX
- API перезаписи
wordpress — используйте .htaccess для перенаправления HTTP на HTTPs
Я пробовал этот пост и многие другие (1, 2, 3, 4), но все они дают мне TOO_MANY_REDIRECTS или ошибку 500. Итак, вот моя проблема:
С моим текущим .htaccess, вот что происходит :
https://www.dukescasino.com/ — работает отлично
https://dukescasino.com/ — перенаправляет на указанный выше сайт, что отлично версия https:
Welcome to Dukes Casino
http://dukescasino.com/ 9индекс\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /index.php [Л]
Не думаю, что это актуально, но если да, то вот список текущих активных плагинов:
- Расширенные настраиваемые поля
- Все в одном SEO-пакете
- Тип элемента окна поиска Bop для навигационных меню
- Контактная форма 7
- Отключить комментарии
- Google XML Sitemaps
- Jetpack от WordPress.com
- Поиск и фильтр
- Слайдер WD
- Настольный пресс
- UpdraftPlus — резервное копирование/восстановление
- Безопасность Wordfence
- WPide
- WP Смуш
- Суперкэш WP
Выполненные тесты:
Тест A:
RewriteEngine включен Переписать Базу / RewriteCond %{HTTPS} выкл. # Сначала перепишите на HTTPS: # Не ставьте www. здесь. Если он уже есть, он будет включен, если нет # последующее правило поймает его. RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Теперь перепишите любой запрос к неправильному домену, чтобы использовать www.