Я хочу ограничить доступ к определенным папкам (включая, например, 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>