Назад | Перейти на главную страницу

ErrorDocument 404 не найден в несуществующем субдомене

Я пытаюсь заставить сервер apache выдавать настраиваемую ошибку 404 для недопустимых поддоменов. Ниже приводится соответствующая часть конфигурации httpd:

Alias /err/ "/var/www/error/"
ErrorDocument 404 /err/HTTP_NOT_FOUND.html.var

<VirtualHost *:80> # the default virtual host
  ServerName site_not_found
  Redirect 404 /
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias ??.example.com
</VirtualHost>

Вместо этого я получаю следующее:

не обнаружена

Запрошенный URL / не найден на этом сервере.

Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 404 Not Found.

Я не понимаю, почему URL-адрес non-existent-subdomain.example.com выдает ошибку 404 без пользовательской ошибки, как показано выше, а URL-адрес для eg.example.com/non-existent-file выдает полную настраиваемую ошибку 404.

Может кто-нибудь посоветует по этому поводу. Спасибо.

Интересный; этот синтаксис задокументирован только для работы с 410 код состояния.

В любом случае использование Redirect 404 / объясняет невозможность обслуживания страницы пользовательской ошибки - на нее влияет Redirect, слишком.

Давая 404'ing vhost его собственный пустой DocumentRoot это один из вариантов, поскольку он может тогда "нормально" 404 запросы, не применяя его глобально ко всему на vhost (включая страницу ошибки).

В качестве альтернативы .. если Redirect работает для 404, возможно RedirectMatch может тоже?

RedirectMatch 404 ^/(?!err)