Подтвердить что ты не робот

Htaccess <Directory> запретить все

В последнее время я убираю свой проект. У меня есть основной .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!

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

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

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

Обратитесь к администратору сервера, веб-мастеру @localhost и сообщите им о времени, когда произошла ошибка, и что угодно это могло привести к ошибке.

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

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

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

4b9b3361

Ответ 1

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

#place this in /system/.htaccess as you had before
deny from all

Ответ 2

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

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

 RedirectMatch 403 ^/folder/?$

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

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

RedirectMatch 403 ^/folder/.*$

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

Ответ 3

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

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

Или:

RewriteRule ^(?:system)\b.* /403.php # with header('HTTP/1.0 403 Forbidden');