Как настроить http-сайт и https-сайт на сервере с одним IP-адресом в Apache?

Как настроить http-сайт и https-сайт на сервере с одним IP-адресом в Apache?

Я хочу создать http-сайт:http://example1.comи https-сайт:https://example2.comиспользуя следующую конфигурацию:

Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
    ServerName example1.com
    DocumentRoot /var/www/example1.com/public_html
</VirtualHost>

<VirtualHost *:443>
    ServerName example2.com
    DocumentRoot /var/www/example2.com/public_html
    SSLCertificateFile...
    SSLCertificateKeyFile...
    SSLEngine On
</VirtualHost>

Однако, если я посещуhttps://example1.com, я перенаправлен наhttps://example2.com. Если я посещуhttp://example2.com, я перенаправлен наhttp://example1.com. Это не то, чего я хочу. Я бы хотелhttps://example1.comиhttp://example2.comвообще не существуют. Как мне быть?

решение1

Тыволянеобходимо определить еще два блока VirtualHost. Если Apache не может найти соответствующий VirtualHost для этого имени, он будет использовать первый VirtualHost, принадлежащий порту.

Конечно, вам не обязательно обслуживать один и тот же веб-сайт:

  • Вы можете предоставить страницу с ошибкой, например, общую404 Не Найдено. Это будет раздражать людей.
  • Для example2.com, вы можете использовать RewriteRule для перенаправления всех HTTP-посетителей на HTTPS.
  • Ну example1.com... я действительно не понимаю, почему бы вам не предоставить его через HTTPS?

Однако вы не можете заставить браузер сообщать, что домен не существует, поскольку это все равно тот же домен, независимо от того, как к нему осуществляется доступ.

Связанный контент