Следующая команда ищет sudo в файле журнала, который используется sudo и su.
grep sudo /var/log/auth.log
Вам нужно три переадресации, чтобы выполнить то, что вы хотите:
http://example.com - https://www.example.com
http://www.example.com - https://www.example.com
https://example.com to https://www.example.com
Первые два из простого HTTP порта 80, поэтому у вас есть VirtualHost для них. Вы можете сделать раздел VirtualHost применимым к нескольким именам хостов (www.example.com и example.com), имея раздел ServerAlias:
# Redirect http://example.com and http://www.example.com to main site
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
Redirect / https://www.example.com/
</VirtualHost >
Затем вам понадобится VirtualHost для https: / /example.com только. HTTPS использует порт 443:
# Redirect https://example.com to main site
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost >
Примечание: вам также необходимо настроить свои настройки SSL, с сертификатом, который поддерживает BOTH домен с и без «www.». Настройка ваших настроек SSL выходит за рамки этого вопроса. (Добавленная информация: это могут быть два отдельных сертификата, если вам нравится: становится все более распространенным иметь множество отдельных сертификатов, теперь у нас есть такие вещи, как Let's Encrypt и SNI)
Если у вас нет SSL-сертификата который поддерживает ваш домен без «www». то вы не сможете выполнить перенаправление с https://example.com. Переадресация произойдет только после проверки браузером сертификата.
Затем, наконец, вам понадобится раздел VirtualHost для «действительного» сайта: HTTPS (порт 443) на www.example.com:
# Main site
<VirtualHost *:443>
ServerName www.example.com
# Put all your configuration for this site here
</VirtualHost >
После того, как вы проверили свои переадресации, и вы счастливы, что они работают, вы можете сделать их постоянными, указав статус 301 в перенаправлении (смените Redirect / https://www.example.com/ на Redirect 301 / https://www.example.com/ всюду) и включив https://example.com , который заставляет браузеры пользователей помнить о предпочтении HTTPS.
Чтобы добавить к ответу thomasrutter, у меня все еще была проблема, когда я делал то, что он предлагал. Иногда вам может потребоваться добавить информацию SSL на виртуальный хост https://example.com. Например, если вы используете SNI для разрешения нескольких сертификатов ssl на ipaddress.
С его помощью вы можете получить ошибку ssl_error_rx_record_too_long, так как сервер будет отправлять обычный текст в запрос https.
# Redirect https://example.com to main site
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
#for Apache Old Style (Valid on Apache <= 2.4.8) - just add in whats needed for your version
SSLEngine on
SSLCertificateFile "your certificate file.crt"
SSLCertificateKeyFile "your key file.key"
SSLCertificateChainFile "your chain file.crt"
</VirtualHost >