Apache2 несколько доменов для использования одного и того же корня документа

#apache #apache2 #virtualhost

#apache #apache2 #virtualhost

Вопрос:

Попытка заставить несколько доменов (потенциально десятки) использовать один и тот же корень документа, поскольку я хочу, чтобы laravel позаботился обо всей маршрутизации.

Сайты будут иметь пользовательские доменные имена, т.Е.. johnwilson.com , davidsmith.com , lisabrown.com и laravel отобразит шаблонную страницу. Я не хочу, чтобы URL-адрес переписывался в адресной строке для пользователя.

Я не могу заставить apache2 уважать конфигурацию моего виртуального хоста, особенно с использованием SSL.

Конфигурация представляет собой стек LAMP в Ubuntu. У меня есть два других сайта, связанных с запуском, которые уже успешно запущены на этом сервере, используя два отдельных корня документа. Они проксируются через cloudfare.

Эти «шаблонные» страницы, которые я просто собираюсь использовать, позволяют шифровать.

Я пробовал: 2 отдельных виртуальных хоста.

 <VirtualHost *:443>
    ServerName johnsmith.com.au
    DocumentRoot /var/www/microsites/public
    # letsencrypt certificate details here
</VirtualHost>

<VirtualHost *:443>
    ServerName lisabrown.com.au
    DocumentRoot /var/www/microsites/public
    # letsencrypt certificate details here
</VirtualHost>
  

В этом случае johnsmith.com.au работает, но lisabrown.com.au просто перенаправляет на johnsmith.com.au . полностью переписать URL-адрес в адресной строке.

Я также пытался использовать ServerAlias, но это приводит меня к различным ошибкам, 404, SSL_INSECURE.

Как правильно это сделать? TIA

Ответ №1:

Используя следующие файлы conf (по одному на домен) Я заставил его работать так, как ожидалось. (и удаление автоматически созданного файла letsencrypt domain-le-ssl.conf)

 <VirtualHost *:80>
    ServerName domain.com.au
    ServerAlias www.domain.com.au
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.domain.com.au [OR]
    RewriteCond %{SERVER_NAME} =domain.com.au
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>

    <VirtualHost *:443>
            ServerName domain.com.au
            ServerAdmin admin@domain.com.au
            DocumentRoot /var/www/microsites/public

            ErrorLog ${APACHE_LOG_DIR}/microsites/domain.error.log
            CustomLog ${APACHE_LOG_DIR}/microsites/domain.access.log combined

            SSLEngine on
            SSLCertificateFile /etc/letsencrypt/live/domain.com.au/fullchain.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/domain.com.au/privkey.pem
            Include /etc/letsencrypt/options-ssl-apache.conf
    </VirtualHost>

</IfModule>