Ubuntu Apache Subdomain not Displaying

Использую Ubuntu 18.04

У меня есть основной сайт www.example.com, все файлы размещены в /var/www/html/ и все работает как ожидалось. Теперь я хочу сделать новый сайт в поддомене www.blog.example.com.

Я создал новую dns запись для поддомена на моем хосте и подтвердил, что она работает, когда я пингую www.blog.example.com, я вижу правильный IP адрес сервера.

Моя структура каталогов выглядит следующим образом;

  • /var/www/html (содержит все файлы для www.example.com)
  • /var/www/blog.example.com (содержит единственный файл index.html для тестирования)

У меня есть виртуальные хосты для каждого домена, содержимое ниже;

/etc/apache2/sites-available/example. com.conf

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
    <Directory /var/www/html/rascal.ac.uk>
        AllowOverride all
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Include conf-available/serve-cgi-bin.conf
</VirtualHost>

/etc/apache2/sites-available/blog.example.com.conf

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot /var/www/blog.example.com
    <Directory /var/www/blog.example.com/>
        AllowOverride all
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Есть также /etc/apache2/sites-available/000-default.conf выглядит так;

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Все сайты включены и я перезагружал/перезапускал apache несколько раз.

Когда я посещаю www.example.com, я вижу свой основной сайт, как и ожидалось. При посещении www.blog.example.com я также вижу свой основной сайт, я должен видеть содержимое моего index.html файла.

Если я отключу 000-default.conf, то обе ссылки отображают содержимое blog.example.com, может ли проблема быть в этом файле?

3
задан 19 February 2021 в 13:21
1 ответ

У вас есть

ServerName blog.example.com

но это другое название, чем www.blog.example.com. Поэтому Apache не использует этот VirtualHost. Вместо этого он возвращается к VirtualHost по умолчанию. Добавление

ServerAlias www.blog.example.com

должно исправить это. See ServerAlias.

Конечно, это примеры имен. Если это не поможет, пожалуйста, отредактируйте свой вопрос, чтобы показать реальные имена хостов.

1
ответ дан 23 April 2021 в 23:57

Теги

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