Я пробовал все перечисленное в моем файле .htaccess.
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#RewriteEngine On
#RewriteCond %{SERVER_PORT} !443
#RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L]
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteEngine On
# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} = ""
RewriteCond %{HTTPS} !=on
# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
У меня есть два виртуальных хоста на этом сервере, и, похоже, ни один из них не работает. У меня есть возможность перезаписи мода в файле httpd.conf. Любые идеи?
Возможно, ваш хост запускает apache вместе с nginx, поэтому ваш .htaccess игнорируется для определенных файлов?

Использование mod_rewrite для перенаправления HTTP на HTTPS не рекомендуется. Вместо этого вы должны использовать RedirectSSL в конфигурации вашего виртуального хоста.
Пример:
<VirtualHost *:80>
ServerName example.com
Redirect / https://example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
# server settings e.g ProxyPass or DocumentRoot
SSLEngine On
# other ssl settings
</VirtualHost>
Если можете, поместите свою конфигурацию в главный файл Apache (или включенный оттуда) вместо
.htaccess. Вы получите большую безопасность, большую простоту и лучшую производительность.