Попробуйте вместо этого в своем файле .htaccess
следующее:
# Redirect HTTP to HTTPS (all requests)
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Prevent additional filesystem check
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Предполагается, что вы находитесь за балансировщиком нагрузки, который обрабатывает SSL-соединение, а соединение с вашим сервером приложений фактически осуществляется по HTTP.
Измените 302
(временный) на 301
(постоянный), только когда вы уверены, что он работает нормально, чтобы избежать проблем с кэшированием.
В WordPress вам следует избегать редактирования директив в# BEGIN WordPress
раздел, как WordPress будет пытаться перезаписать это при обновлении (если вы не предприняли дополнительные шаги, чтобы заблокировать это).