Назад | Перейти на главную страницу

Виртуальный хост не работает 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]

Мое простое требование - загрузить основной домен из корневого каталога и все поддомены из каталога приложений.

Ваш apache2.conf имеет то же самое ServerName mydevsite.com для обоих vhosts. Apache хочет, чтобы для каждого виртуального хоста использовались разные имена. Конфигурация могла выглядеть так:

<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>

Есть сомнения, пожалуйста, прочтите HTTP-сервер Apache версии 2.4 - использование виртуальных хостов на основе имени.

Перед перезапуском Apache проверьте конфигурацию:

$ sudo apache2ctl configtest

Если configtest завершается без ошибок, перезапустите Apache:

$ sudo systemctl restart apache2.service