htaccess <Directory>отрицать от всех - PullRequest
50 голосов
/ 30 декабря 2011

В последнее время я убираю свой проект.У меня есть основной .htaccess в корневом каталоге и 6 других.5 из них работали Options -Indexes, что я не видел никакого смысла в разрешении просмотра любого каталога, поэтому переместил его в основной.так что теперь у меня есть только 2 файла .htaccess.основной и один в /system, который содержит

# Block External Access
deny from all

Так что я хотел запустить это на /system только из основного.Поэтому я удалил один в / system и добавил

 # Block External Access
<Directory "/system/">
deny from all
</Directory>

в мой основной файл .htaccess, оставив 1!

но теперь я получаю

Внутренняя ошибка сервера

Сервер обнаружил внутреннюю ошибку или неверную конфигурацию и не смог выполнить ваш запрос.

Пожалуйста, свяжитесь с администратором сервера, webmaster @ localhost и сообщите им о времени возникновения ошибки и обо всем, что вы могли сделать, что могло привести к ошибке.

Более подробная информация об этой ошибке может быть доступна на сервере.журнал ошибок.

Apache / 2.2.17 (Ubuntu) Сервер на 10.0.1.5 Порт 80

Цель - заблокировать чтение любых файлов в / system и его подкаталогах, но разрешитьпросмотр всего остального из одного .htaccess файла для всего проекта.Любые идеи о том, как я могу это исправить?Я сделал несколько поисков в Google, но не смог ничего найти.

Ответы [ 3 ]

81 голосов
/ 31 декабря 2011

Вы не можете использовать директиву Directory в .htaccess. Однако если вы создадите файл .htaccess в каталоге / system и поместите в него следующее, вы получите тот же результат

#place this in /system/.htaccess as you had before
deny from all
11 голосов
/ 16 февраля 2017

Вы также можете использовать директиву RedirectMatch, чтобы запретить доступ к папке.

Чтобы запретить доступ к папке, вы можете использовать следующее RedirectMatch в htaccess:

 RedirectMatch 403 ^/folder/?$

Это запретитвнешний доступ к / folder / например: http://example.com/folder/ вернет запрещенную ошибку 403.

Чтобы запретить доступ ко всему, что находится внутри папки, вы можете использовать это:

RedirectMatch 403 ^/folder/.*$

Это заблокирует доступ ко всей папке, например: http://example.com/folder/anyURI вернет клиенту ответ об ошибке 403.

1 голос
/ 30 октября 2015

Вы можете использовать из корневого каталога:

RewriteEngine On
RewriteRule ^(?:system)\b.* /403.html

Или:

RewriteRule ^(?:system)\b.* /403.php # with header('HTTP/1.0 403 Forbidden');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...