У меня есть это в моем конфигурационном файле Apache:
<VirtualHost *:80>
other stuff here
Redirect permanent / https://example.com/
</VirtualHost>
Это прекрасно работает. Он перенаправляет все www.example.com
=> https://example.com
. Но проблема в том, что посетитель набирает https://www.example.com
тогда перенаправления не происходит.
Я добавил ту же строку под 443 VirtualHost
<VirtualHost *:443>
other stuff here
Redirect permanent / https://example.com/
</VirtualHost>
Но это не имеет такого же эффекта. Какие-нибудь идеи, пожалуйста?
<VirtualHost *:443> other stuff here Redirect permanent / https://example.com/ </VirtualHost>
Предполагая, что ваш сертификат SSL охватывает как www
субдомен и домен вершины, тогда здесь важны ваши «другие вещи» - это будет то, что определяет, какой хост вы перенаправляете из.
если посетитель вводит
https://www.example.com
тогда перенаправления не происходит.
Для этого вам нужен контейнер VirtualHost, специально предназначенный для порта 443. и покрывает хозяина www.example.com
(т.е. включая www
поддомен). Это должна быть отдельная настройка VirtualHost только с целью перенаправления. Например, это должно включать соответствующие ServerName
или ServerAlias
директива:
ServerName www.example.com
Я добавил ту же строку под в 443 VirtualHost
Вам понадобится два VirtualHosts для порта 443. Один для www.example.com
который перенаправляет (как указано выше) и один для вашего канонического example.com
который содержит всю вашу конфигурацию.