虚拟主机不适用于AWS Apache

虚拟主机不适用于AWS Apache

我有以下虚拟主机(在 apache2.conf 文件中)从 AWS 上的单个目录加载所有子域

<VirtualHost *:80>
    DocumentRoot /var/www/html
   ServerName mydevsite.com
   ServerAlias mydevsite.com

</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/html/apps
    ServerName mydevsite.com
    ServerAlias *.mydevsite.com
</VirtualHost>

它不起作用并且子域名仍然指向 html 目录

我也尝试在 htaccess 中执行以下操作,但它给出了 500 错误

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.website\.com$
RewriteCond %{HTTP_HOST} ^(\w+)\.website\.com$
RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1
RewriteRule ^(.*)$ /%1/$1 [QSA]

我的简单要求是从根目录加载主域,并从应用程序目录加载所有子域

答案1

apache2.conf两个虚拟主机都一样。ApacheServerName mydevsite.com需要不同的名称来标识每个虚拟主机。配置可能如下所示:

<VirtualHost *:80>
    ServerName mydevsite.com
    DocumentRoot "/var/www/html"
</VirtualHost>

<VirtualHost *:80>
    ServerName apps.mydevsite.com
    ServerAlias *.mydevsite.com
    DocumentRoot "/var/www/html/apps"
</VirtualHost>

如有疑问请阅读Apache HTTP 服务器版本 2.4 - 使用基于名称的虚拟主机

重新启动 Apache 之前测试配置:

$ sudo apache2ctl configtest

如果 configtest 没有错误退出,请重新启动 Apache:

$ sudo systemctl restart apache2.service

相关内容