Теперь, если я захожу на http://example1.com, я на самом деле открываю http://example2.com .
Это (частично), потому что порт 80 и порт 443 не являются автоматически взаимозаменяемыми. Нет (вообще говоря) никаких механизмов для автоматического перенаправления запросов с одного порта на другой, если вы не укажете это поведение на самом сервере (обратите внимание, что это исключает некоторые подключаемые модули браузера или функции, которые заставляют HTTPS-соединения).
Я полагаю, что http://example1.com не доступен [.]
Это правильно. Если вы не определили виртуальный хост HTTP на порту 80 с этим доменом, он не существует и, следовательно, не может быть доступен (забывая о хостах по умолчанию). Я предполагаю, что вы определили example1.com в вашем файле hosts или DNS.
Я пытался добавить виртуальный хост по умолчанию [...], но это не помогло.
Могут быть другие проблемы с вашей конфигурацией. Тем не менее, вам, скорее всего, нужно (по крайней мере, для начала) фактическая запись виртуального хоста, соответствующая http://example1.com :
Listen 80 Listen 443 # Virtual Hosts For Basic HTTP Services <VirtualHost *:80> ServerName example1.com # We can use * to catch all sub-domains other than e.g. www # ServerAlias www.example1.com *.example1.com ServerAlias www.example1.com # DocumentRoot "/var/www/example1.com" # DocumentRoot "/var/www/default" # If we get any requests on port 80 for example1.com # redirect them to e.g. http://www.example1.com:443/ Redirect permanent / http://www.example1.com:443/ </VirtualHost> # This is not an SSL (HTTPS) virtual host <VirtualHost *:443> ServerName example1.com DocumentRoot "/var/www/example1.com" </VirtualHost> # Our other domain <VirtualHost *:80> ServerName example2.com DocumentRoot "/var/www/example2.com" </VirtualHost>