虚拟主机不工作 AWS apache

Vik*_*ram 6 mod-rewrite virtualhost amazon-web-services apache2

我有以下虚拟主机(在 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>
Run Code Online (Sandbox Code Playgroud)

它不起作用,子域仍然指向 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]
Run Code Online (Sandbox Code Playgroud)

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

Fab*_*ian 3

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

$ sudo apache2ctl configtest

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

$ sudo systemctl restart apache2.service