Принудительно SSL не работает с .htaccess - PullRequest
0 голосов
/ 22 мая 2018

Я попробовал все следующее в моем файле .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.Есть идеи?

1 Ответ

0 голосов
/ 22 мая 2018

Использование 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...