Как настроить виртуальный хост по умолчанию, возвращающий заголовок 404 в apache?


14

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

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

Любая помощь будет принята с благодарностью.

Ответы:


27

Ты пробовал:

Редирект 404 /
ErrorDocument 404 «Страница не найдена»

в виртуальном хосте по умолчанию?


Спасибо, что сделал это! Поскольку мой низкий уровень знаний очевиден, я могу добавить для моих коллег-новичков, что сервер по умолчанию должен появляться первым. (Это заняло у меня некоторое время, чтобы понять!)
ezequiel-garzon

Обратите внимание: если указатель ErrorDocumentуказывает на файл или URL внутри этого хоста, он также возвращает 404, что приводит к внутренней ошибке сервера.
Кирилл Н.

Этот ответ будет работать для сайтов, где все vhosts содержатся в одном файле (ответ Eugene Fidelin является более полным). При использовании отдельных файлов .conf для каждого сайта с a2ensite я не мог понять, как сначала загрузить конфигурацию по умолчанию (404).
Эндрю Свифт

Redirect 404 /Достаточно показать страницу Apache «Not Found» по умолчанию, и она также работает внутри определенного виртуального хоста (могут быть случаи, когда вы хотите вернуть 404 для всего сайта, чтобы он исчез из поисковой
выдачи

1

Вот пример 000-default.conf, который вернет ошибку 404, если имя сервера не настроено для Apache

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

Я могу подтвердить, что вторая часть работает, когда все vhosts настроены в одном файле (я поставил его первым).
Эндрю Свифт

1
Возможно, лучше использовать 503 (Service Unavailable) вместо 404, но я сомневаюсь, что на практике это имеет большое значение, инструменты мониторинга, как правило, предупреждают о любых кодах, отличных от 200.
Крис

Он отлично работает для http, но не для https, когда я использую порт 443. У вас есть какие-либо идеи по этому поводу?
Сохейл Ахмед
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.