Иногда возникает потребность ограничить доступ к некоторым файлам или папкам для определенных групп посетителей сайта. В Web-сервере Apache есть встроенные средства для решения этой проблемы.
Для запрета или разрешения доступа ко всем файлам и папкам в текущей и во всех вложенных директориях используется директива Order, синтаксис ее очень прост:
# По умолчанию Deny,Allow
Order [Deny,Allow] | [Allow,Deny]
В зависимости от того, в каком порядке указаны директивы, меняется логика работы сервера. В случае, если Deny,Allow, то запрещается доступ со всех IP кроме оговоренных, в случае, если Allow,Deny, разрешается доступ со всех IP кроме оговоренных. Далее должны идти секции описания для доступа и запрета. Ключевое слово all означает со всех IP
Например, если вы хотите запретить (блокировать) доступ с IP 80.333.122.12 и 80.444.111.20 и разрешить всем остальным. Вам надо добавить в .htaccess следующие строки:
Для обратной ситуации, когда мы хотим запретить доступ со всех IP кроме 80.333.122.12 и 80.444.111.20, вам надо добавить в .htaccess следующие строки:
Запрет или разрешение на доступ можно указывать не только на все файлы, но так же и на отдельный файл или группы файлов. Например, вы хотите запретить доступ всех пользователей, кроме IP 80.333.122.12, к файлу passwd.html, который расположен в текущей директории:
Так же вы можете запретить или разрешить доступ к определенной группе файлов. Например, к файлам с расширением ".key":