Динамический IP-адрес .htaccess?
Можно ли заблокировать пользователей от IP-адресов с помощью динамического файлового списка?
Итак, предположим, что .htaccess выглядит так:
order Deny,Allow
Deny from 123.156.0.1
Deny from 10.0.0.10
Allow from all
Можно ли сделать этот список динамическим, например:
order Deny,Allow
[include Deny list here]
Allow from all
Другим вариантом было бы, конечно, исправить его с помощью PHP, но желательно, чтобы Apache справлялся с этим.
Ответы
Ответ 1
В соответствии с Apache docs, кажется, что невозможно считывать значения из текстового файла.
Однако вы можете include
конфигурационный файл, содержащий IP-адреса. Однако они должны быть в формате файла apache conf.
Это должно работать:
order Deny,Allow
include conf/IPList.conf
Allow from all
Это возможно даже для include
целых каталогов, даже если это не рекомендуется.
Ответ 2
Я использую функцию RewriteMap из Apache RewriteModule в качестве белого списка:
## WHITELIST IPS ##
RewriteMap ipslist txt:/path/to/whitelist.txt
RewriteCond %{REMOTE_ADDR} ^(.*)$
RewriteCond ${ipslist:%1|black} ^black$ [NC]
RewriteRule (.*) - [F]
С некоторой настройкой вы можете сделать это черным списком.