Каков правильный способ перенаправления всего трафика на HTTPS?

Что я хочу сделать

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

Что я пробовал

Я включил SSL-сертификат на панели управления и попытался выполнить процедуру, описанную службой хостинга, которая в основном состоит в добавлении некоторого кода в файл .htaccess , а именно:

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

Мой текущий .htaccess уже заполнен записями самим WordPress и паролем плагинов, W3 Total Cache и Wordfence Security ( вот ссылка на pastebin , извините, но я не смог его правильно отформатировать).

Я добавил код от хостинговой компании в конец файла , но он не работал должным образом, и в результате веб-страницы были плохо обработаны, а сам URL был изменен с помощью случайного кода. Я не знаю, был ли это цикл перенаправления, конфликт с минимизацией W3TC или комбинация обоих.
Что я могу догадаться после небольшого обзора кода, так это то, что в файле .htaccess есть различные записи с условием <IfModule mod_rewrite.c> , которые, вероятно, создают конфликты.

Что мне нужно знать

  1. Как я могу решить эту проблему с файлом .htaccess , чтобы иметь рабочий веб-сайт только для HTTPS?
  2. В области администрирования WordPress в Settings > General следует изменить адреса с http://www.example.com на https://www.example.com ? И это должно быть сделано до или после изменения .htaccess ?
  3. Нужно ли изменять и .htaccess и адреса, или они делают то же самое, и я должен применять только одну из этих вещей?

Solutions Collecting From Web of "Каков правильный способ перенаправления всего трафика на HTTPS?"

Номер 1

Если вы хотите, чтобы ваш сайт был ТОЛЬКО доступным через HTTPS, вы захотите добавить этот фрагмент кода в ваш .htaccess файл, заменив имя вашего домена:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] </IfModule> 

Это приведет к перенаправлению любых посещений с версии SSL без SSL на ваш сайт.

Номер 2

Да, вам нужно изменить значения вашего Website Address Site Address в панели администратора на HTTPS. Лучше сделать это перед редактированием файла .htaccess , так как после редактирования .htaccess все трафик будет перенаправлен на HTTPS, пока URL вашего сайта находится в HTTP. Также убедитесь, что ваши скрипты, стили и изображения доступны через SSL для предотвращения проблем с рендерингом.

Номер 3

Да. . htaccess перенаправляет трафик с HTTP на HTTPS, а ваш Site Address объявляет, что ваш основной домен использует HTTPS.

Если вы видите какие-либо конфликты в файле .htaccess , лучше всего скопировать его полностью в pastebin и обновить вопрос по ссылке. Я попытаюсь посмотреть, есть ли строка, вызывающая какой-либо конфликт в вашем файле .htaccess .