Apache2 не работает с несколькими субдоменами (только с одним) в Ubuntu 19.04 (виртуальные хосты)

, поэтому у меня проблема с виртуальными хостами Apache 2 (2.4.38). Я успешно настроил два из них: один для моего фактического домена (например, example.com) и один для поддомена (blog.example.com). Затем я попытался создать новый для еще одного поддомена (назовем его sub.example.com), но по какой-то причине это всегда перенаправляет на первый поддомен, т.е. е. blog.example.com.

У меня есть файл .conf для каждого из моих поддоменов в моем каталоге / etc / apache2 / sites-available , все они были включены с помощью a2ensite ] и default.conf был отключен с помощью a2disconf . Я также установил соответствующие записи A.

Я видел, как несколько разных людей говорили, что добавление NameVirtualHost решит эту проблему, но, похоже, это устарело и не работает.

Мои файлы .conf выглядят следующим образом, где example.com - это мой фактический домен:

<VirtualHost *:80>
    ServerAdmin info@example.com
    ServerName blog.example.com
    DocumentRoot /var/www/blog.example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =blog.example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Конфигурация другого моего поддомена выглядит точно так же, но с DocumentRoot , ServerName и RewriteCond изменены, чтобы отразить его другое местоположение и имя. Перезапуск самого сервера или Apache2 (и ожидание в течение нескольких дней, если установка записи A заняла некоторое время), похоже, тоже ничего не помогло.

Ничего из того, что я искал в Интернете, похоже, не сработало. та же проблема, что и у меня; Я нашел несколько, но они сказали, что это можно смягчить с помощью директивы , которая в моем случае ничего не сделала.

К сожалению, я все еще новичок в Apache2, поэтому я был бы признателен, если бы кто-нибудь здесь знал, как заставить это работать правильно.

Заранее спасибо!

С уважением, Marvin

0
задан 13 April 2020 в 18:07
1 ответ

В качестве альтернативного предложения - на самом деле вам не нужна отдельная конфигурация перенаправления для каждого домена - вы можете использовать подстановочный знак. Это виртуальный хост, который мы определили для этого:

<VirtualHost *:80>
   # This acts as a catchall for subdomains being accessed on HTTP
   # it forces a redirect to HTTPS.

   ServerName vhbootstraphttps.example.com

   ServerAlias *.example.com

   RewriteEngine On

   RewriteCond %{HTTPS} !=on
   RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

</VirtualHost>

Примечание: для подстановочного символа вам необходимо использовать ServerAlias ​​

0
ответ дан 14 April 2020 в 10:27

Теги

Похожие вопросы