Используйте.htaccess, чтобы заблокировать *All* доступ к определенным папкам

Я не уверен, как это сделать, но я хочу заблокировать любой доступ к определенному набору папок на моем веб-сервере. Скажи секрет01 и секрет 02...

homeDir
  |- data
  |- www
  |   |- .htaccess (file)
  |   |- images
  |   |- js
  |   |- secret01
  |   |- secret02
  |   |...
  |...

Какие правила мне нужно добавить в мой корневой файл.htaccess, чтобы сделать это? Я хочу, чтобы весь доступ из Интернета был заблокирован для доступа к этим папкам, точка. Единственный способ добраться до них был бы закончен SFTP или же SSH, Так какое правило я ищу? Я предпочтительно ищу однострочник, чтобы я мог добавить больше папок или переместить его на другой сайт в будущем. Я действительно предпочел бы, чтобы правило помещалось в корневой файл.htaccess, чтобы мне не приходилось прыгать повсюду, чтобы блокировать и разблокировать папки.

= Обновление для Ясности =

У меня нет доступа к файлу conf для этого хоста (он находится в общей среде), и мне нужно иметь эти папки внутри webroot для некоторых целей оболочки. Если бы я мог, я бы уже убрал их из рута.

Я также не хочу ввернуть права доступа к файлу, просто есть правило в моем .htaccess блокирует доступ веб-трафика к папке или набору папок.

2 ответа

Решение

Вы можете просто создать.htaccess с

DENY FROM ALL

для папок (поместите файл в те).

Также с mod_rewrite на www/.htaccess:

RewriteEngine On
RewriteRule ^(secret1|secret2|asdf) - [F,L]

Если вы действительно не хотите, чтобы они были доступны через Интернет по протоколу HTTP, вы должны полностью переместить их за пределы веб-дерева.

Вы также можете использовать разрешения файловой системы. Например, если Apache работает как apache пользователь, но вы хотите, чтобы файлы были доступны только через SSH user23 вы можете иметь секрет * принадлежащий user2 и не для публичного чтения. Конечно, здесь есть почти бесконечные дополнительные опции. Groups, filesystem ACLs, and more.

For ACLs, you can use mod_authz. It's best to keep the configuration in the conf and not in .htaccess, Having them in .htaccess introduces more exposure and possible for manipulation with lesser privileges.

mod_authz documentation

Другие вопросы по тегам