Apache2多个域使用相同的文档根目录

时间:2020-09-21 11:00:22

标签: apache apache2 virtualhost

尝试让多个域(可能是数十个)使用同一文档根目录,因为我希望laravel负责所有路由。

站点将是自定义域名,即。 johnwilson.com,davidsmith.com,lisabrown.com和laravel将显示模板页面。我不希望将地址栏中的URL重写给用户。

虽然我无法让apache2尊重我的虚拟主机配置,尤其是使用SSL。

该配置是Ubuntu上的LAMP堆栈。我有两个其他与运行相关的站点已在此服务器上成功运行,使用两个单独的文档根目录。这些都是通过云票价代理的。

我将要使用的这些“模板化”页面允许进行加密。

我尝试过: 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。完全重写地址栏中的网址。

我也尝试过使用 ServerAlias ,但这会导致出现各种错误404,SSL_INSECURE。

执行此操作的正确方法是什么? TIA

1 个答案:

答案 0 :(得分:0)

使用以下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>
相关问题