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

Apache 2.4 ErrorDocument 403 не работает с Require ip

Я хочу внести в белый список один IP-адрес для сайта, который я создал в файле виртуального хоста. В рамках <VirtualHost> Я установил эти 2 основных правила:

ErrorDocument 403 /var/www/html/403.html
<Location />
    Require ip xxx.xxx.xxx.xxx
</Location>

Когда я получаю доступ к сайту за пределами разрешенного IP-адреса, я получаю общую страницу Apache «Запрещено» вместо пользовательской страницы, которую я пытаюсь использовать. Я даже получаю дополнительное сообщение: «Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 403 Forbidden». Это имеет смысл, поскольку я не разрешаю доступ ни к одному URL-адресу для запрещенных IP-адресов, но, очевидно, я хотел бы сделать одно исключение для просмотра моей пользовательской страницы 403.

FWIW в VirtualHost, DocumentRoot уже установлен в / var / www / vhosts / blahblah, поэтому я решил, что /var/www/html/403.html не будет ограничен. Я видел некоторую форму этого вопроса, задаваемого на этом и других сайтах, но, похоже, ни у кого нет настоящего рабочего решения, особенно для 2.4 - присутствуют ли инженеры Apache? знак равно

Либо исключите Местоположение, содержащее страницу с ошибкой, из Location / директива, запрещающая доступ, предшествующая этому с помощью

  <Location/403.html  >
         Require all granted
   </Location>

Или убедитесь, что документ с ошибкой находится за пределами Location /, что запрещено с помощью другого (под) домена для представления ошибки

Т.е. используйте что-то вроде:

 ErrorDocument 403 https://errors.example.com/403.html