.htaccess — (hypertext access) файл дополнительной конфигурации веб-сервера Apache и подобных ему серверов.
Чтобы файл обрабатывался сервером Apache, в конфигурационном файле для указанной директории должна стоять опция «AllowOverride All».
Приведу ниже пример некоторых параметров.
Запрет доступа на все файлы:
Require all denied
Разрешаем доступ всем:
Require all granted
Разрешить доступ с определенного ip (можно указывать несколько через пробел):
order deny allow
deny from all
allow from 192.168.5.5 192.168.4.1
Запретить доступ с определенного ip:
order allow deny
allow from all
deny from 192.168.5.5 192.168.4.1
Запрет доступа на конкретный файл:
<Files file.php>
order allow,deny
deny from all
</Files>
Разрешим доступ к файлу только локально и для указанных IP адресов:
<Files ixnfo.php>
Require local
Require ip 192.168.5.5 192.168.3.5
</Files>
Ограничение доступа по IP адресам ко всем файлам c именами начинающимся на «text…»:
<Files text*>
Require local
Require ip 192.168.5.5 192.168.3.5
# 192.168.5.5 comment
</Files>
Пароль на директорию:
AuthName "Hello"
AuthType Basic
AuthUserFile /home/user/.htpasswd
require valid-user
Пароль на 1 файл:
<Files file.php>
AuthName "Hello"
AuthType Basic
AuthUserFile /home/user/.htpasswd
</Files>
Пароль на группу файлов:
<Files "\.(cfg)$">
AuthName "Hello"
AuthType Basic
AuthUserFile /home/user/.htpasswd
</Files>
Если движок сайта отображает свою ошибку открытия страницы вместо запроса пароля, то добавим следующую строку в главный файл .htaccess:
ErrorDocument 401 default
Перенаправление на другой url:
Redirect / http://www.site.com
Генератор .htpasswd: www.htaccesstools.com/htpasswd-generator
Можно сгенерироать файл из командной строки системы используя утилиту htpasswd, в Ubuntu она устанавливается с apache2-utils командой:
sudo apt install apache2-utils
Смотрите также мою статью:
Контроль доступа Apache2