@drawoharaя ❤️ це! << натисніть мене 🐛 🫖 🧚
/configuring-the-default-virtual-host-in-apache2
опубліковано: 2012-12-13

#
#
# apache має дивну поведінку, коли перенаправляє будь-який запит з поганим або невідомим
# заголовком Host: на перший віртуальний хост, знайдений у його конфігурації. Це може викликати
# дуже погані проблеми, коли кілька сайтів розміщені на одному сервері apache.
# Наприклад, невдалий запит для http://foo.bar.com/missing
# може потрапити на віртуальний хост passenger і викликати невизначену поведінку в залежності
# від того, як веде себе це застосування.
#
# рішення полягає в тому, щоб забезпечити існування віртуального хоста, який ловить все, і щоб він завантажувався
# перед усіма іншими файлами конфігурації віртуальних хостів - і щоб цей віртуальний
# хост просто повертав 404 (ви також можете показати дружнє повідомлення про помилку)
#
# припустимо, що файли конфігурації apache завантажуються з, наприклад:
#
# /etc/apache2/sites-enabled/*.conf
#
# ви повинні помістити цю конфігурацію в файл з назвою
#
# /etc/apache2/sites-enabled/0.conf
#
# '0.conf' забезпечує його завантаження першим. Ви можете перевірити, що ця конфігурація
# завантажується першою за допомогою
#
# ls -1 /etc/apache2/sites-enabled/ | sort | head -1
#
# це має надрукувати
#
# /etc/apache2/sites-enabled/0.conf
#
# після встановлення конфігурації ви можете перевірити, що це дійсно конфігурація за замовчуванням/перша, яка використовується, за допомогою
#
# curl --silent --header 'Host: fu.bar.com' your.domain.com
#
# якщо це правильно, буде надіслано стандартну сторінку apache 404. Очевидно,
# ви можете налаштувати віртуальні сервери за замовчуванням так, щоб у них був фактичний корінь документа
# тощо...
#
# ще одна важлива зауваження. Недостатньо просто налаштувати
#
# _default_:80
#
# віртуальний хост.
#
# вам також потрібно налаштувати фактичний іменований хост
#
# ServerName _default_
#
# причина цього полягає в тому, що віртуальний хостинг на основі імен за замовчуванням використовує перший
# *віртуальний хост на основі імен*, тож ви не можете покладатися на неіменований,
# що було б достатньо в більшості ситуацій.
#
# цей розділ перехоплюватиме запити до відсутніх хостів під конфігурацією віртуального хоста на основі імен
#
  <VirtualHost *:80>
    ServerName _default_
    Redirect 404 /
  </VirtualHost>
# а це оброблятиме решту
#
  <VirtualHost _default_:80>
    Redirect 404 /
  </VirtualHost>