Добавление субдомена в виртуальный хост Apache

Я пытаюсь настроить поддомен: api.example.com (exapmle.com заменяется моим фактическим доменным именем)

У меня уже были виртуальные хосты, настроенные с двумя сайтами: example.com и example.nl, у них обоих были отдельные каталоги, и они работали правильно как отдельные сайты.

Теперь я хочу добавить api.example.com с отдельным корневым каталогом документов. Я добавил файл конфигурации под названием «api.example.com.conf», внутри которого:

<VirtualHost *:80>

ServerAdmin admin@api.example.com

ServerName api.example.com

ServerAlias www.api.example.com

DocumentRoot /var/www/api.example.com/html

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on

RewriteCond %{SERVER_NAME} =www.api.example.com [OR]

RewriteCond %{SERVER_NAME} =api.example.com

RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

Я добавил папку /var/www/api.example.com/html с примером index.html внутри. Я дал папке нужные разрешения. После этого я включил сайт с помощью: «a2ensite api.example.com.conf» и перезапустил apache.

Я добавил новую запись в записи example.com. Это запись A с api.example.com, и она перенаправляет на тот же IP-адрес, что и example.com, потому что они находятся на одном сервере.

После всего этого я ожидал, что когда я перейду на api.example.com, он покажет мне созданный мной пример index.html, но этого не произошло. Когда я перехожу на api.example.com, это то же самое, как если бы я перешел на example.com.

Что я делаю неправильно?

2 симпатии

Вы перенаправляете трафик с http://api.example.com на https://api.example.com, поэтому вам нужно настроить другой виртуальный хост для https://api.example.com, где он прослушивает порт 443 и использует сертификат для api.example.com.

Поскольку в настоящее время у вас нет этого файла конфигурации, он показывает сайт по умолчанию example.com.