У меня есть следующий виртуальный хост (в файле 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