尝试让多个域(可能是数十个)使用同一文档根目录,因为我希望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
答案 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>