Как настроить веб-сайт 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 Not Found. Это будет раздражать людей.
- За
example2.com
Вы можете использовать RewriteRule для перенаправления всех посетителей HTTP на HTTPS. - За
example1.com
... ну, я действительно не понимаю, почему вы не подали бы это через HTTPS?
Однако вы не можете сделать так, чтобы браузер сообщал, что домен не существует, потому что это все тот же домен, независимо от того, как к нему обращались.