Як налаштувати віртуальний хост за замовчуванням повернути заголовок 404 в apache?


14

Я знаю, що були задані подібні запитання, але наявні відповіді не дуже зрозумілі, тому будь ласка, майте на увазі мене.

Після встановлення декількох <VirtualHost>s в apache, я хотів би налаштувати _default_ ServerName так, щоб він повертав повідомлення 404. Тобто, якщо якийсь явно доступний домен не вказано в заголовку http Host, поверніть 404. (В ідеалі щось більш пряме, ніж вказівка ​​на вже неіснуючий каталог.)

Будь-яка допомога буде дуже вдячна.

Відповіді:


27

Ви спробували:

Перенаправлення 404 /
ErrorDocument 404 "Сторінку не знайдено"

у VirtualHost за замовчуванням?


Дякую, що це вдалося! Оскільки явно мій низький рівень знань, я можу додати для своїх колег новачків, що сервер за замовчуванням повинен з’явитися першим. (Це знадобило мені час, щоб розібратися!)
ezequiel-garzon

Зверніть увагу, що якщо ErrorDocumentвказує на файл або URL-адресу всередині цього vhost, він також поверне 404, генеруючи таким чином внутрішню помилку сервера.
Кирило Н.

Ця відповідь спрацювала б для сайтів, де всі видовища містяться в одному файлі (відповідь Євгена Фіделіна є більш повною). Використовуючи окремі файли .conf для кожного сайту з a2ensite, я не міг зрозуміти, як спочатку завантажити конфігурацію за замовчуванням (404).
Ендрю Свіфт

Redirect 404 /достатньо, щоб показати сторінку Apache "Не знайдено" за замовчуванням, вона також працює всередині певного віртуального хосту (можуть бути випадки, коли ви хочете повернути 404 для всього сайту, щоб він зник з Google
SERPs

1

Ось приклад 000-default.conf, який поверне помилку 404, якщо ім'я сервера не налаштовано для Apache

<VirtualHost *:80>
  ServerName default
  Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
  Redirect 404 /
</VirtualHost>

Я можу підтвердити, що друга частина працює, коли всі vhosts налаштовані в одному файлі (я ставлю його першим).
Ендрю Свіфт

1
Можливо, краще використовувати 503 (Служба недоступна) замість 404, але я сумніваюся, що на практиці це має велику різницю, засоби моніторингу зазвичай попереджають про будь-які не 200 кодів.
Кріс

Він ідеально працює для http, але не для https, коли я працюю з портом 443. Чи маєте ви про це уявлення?
Сохайл Ахмед
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.