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

Пользовательская страница ошибки 403 не отображается

Я хочу ограничить доступ к определенным папкам (включая, например, xml и журналы), поэтому я дал им 700 разрешений, а всем файлам в них - 600 разрешений. Во-первых, это правильный подход к ограничению доступа?

У меня есть файл .htaccess в моем корне, который обрабатывает перезапись и ошибки документов. В корне есть две страницы - 403.php и 404.php - для ошибок 403 и 404. И я добавил эти правила в мой файл .htaccess:

ErrorDocument 404 /404.php
ErrorDocument 403 /403.php

Теперь страница 404 работает нормально. Страница 403 не отображается, когда я пытаюсь получить доступ к папке «включает» - вместо этого я получаю стандартную страницу с ошибкой apache 403, в которой говорится: «Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 404».

Однако, когда я пытаюсь перейти к файлу .htaccess (в корневом веб-каталоге) в моем браузере, я получаю собственную страницу с ошибкой 403. Почему это происходит?

Есть ли внутри папки includes / файл .htaccess? И есть ли у него ErrorDocument 403 директива?

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

Попробуйте поставить ErrorDocument в вашем файле httpd.conf или vhost.

Что вы видите в журналах доступа и ошибок для этих запросов?

Также стоит трижды проверить, что в строке 403 определенно написано ErrorDocument 403 /403.php и нет ErrorDocument 403 403.php. Эта маленькая опечатка может вызвать все описанные вами симптомы.

Обновление после чата:

Окончательное решение заключалось в том, чтобы сделать каталог include доступным для чтения пользователем Apache и добавить его в .htaccess:

  <Location /includes>
    Order Deny,Allow
    Deny from all
  </Location>