Я везде искал решение смочь вызвать https://www перед использованием всего моего URL виртуальный хост. Это - то, что я в настоящее время имею в своем 000-default.conf файле:
<VirtualHost *:80>
ServerName www.domain.com
Redirect / https://www.domain.com/
</VirtualHost >
Это означает, что весь www. перенаправил бы к https://www.
Теперь я пропускаю код для перенаправления всех/любых других форм URL к https://www. использование того же понятия (не RewriteEngine, потому что Apache предлагает не использовать RewriteEngine на простых перенаправлениях).
Например:
они были бы все переходить в => https://www.domain.com
Если бы кто-то может указать на меня в правильном направлении, которое было бы большим!
Это работало на меня, можно протестировать его на моем домене, если Вам нравится.
<VirtualHost *:80>
ServerName freesoftwareservers.com
ServerAlias *.freesoftwareservers.com
Redirect / https://www.freesoftwareservers.com/
</VirtualHost>
<VirtualHost *:443>
ServerName freesoftwareservers.com
ServerAlias *.freesoftwareservers.com
я имел проблемы, повторно реализовывая это и нашел, что, если я удалил 000-default.conf символьную ссылку из/sites-enabled этого, работал. Не уверенный, что является соглашением, но у меня есть 0 других записей DNS на стороне DNS, и мой Apache делает все перенаправление, и это работает.
Для добавления к ответу 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 >
Вам нужны три перенаправления, чтобы сделать то, что Вы хотите:
http://example.com
кому: https://www.example.com
http://www.example.com
кому: https://www.example.com
https://example.com
кому: https://www.example.com
Первые два являются от порта 80 плоскостями HTTP, таким образом, у Вас есть 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 там также с сертификатом, который поддерживает И домен с и без "www".., установка настроек SSL выходит за рамки этого вопроса. (Добавленная информация: они могут быть двумя отдельными сертификатами, если Вам нравится; больше распространено иметь много отдельных сертификатов теперь, у нас есть вещи, любят, Давайте Зашифруем и 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/
везде), и путем включения HSTS, который вынуждает браузеры пользователей помнить предпочтение HTTPS.