Я хочу динамически добавлять IP-адреса в черный список через htaccess. Я надеялся, что кто-нибудь скажет мне, будет ли в моем случае работать следующее (я не уверен, как тестировать через localhost).
Мой файл .htaccess по умолчанию будет иметь следующее:
order allow,deny
allow from all
IP-адреса будут добавляться динамически:
Order Deny,Allow
Allow from all
Deny from 192.168.30.1
Насколько я понимаю, это по умолчанию разрешить все с дополнительным списком запрещающих правил. Если я не ошибаюсь Order Deny,Allow
сначала посмотрит список запрещенных, это правильно?
И обязательно ли должно быть правило «Разрешить от всех» в конце?
ИЗМЕНИТЬ 1
Если я не ошибаюсь, мне нужно сделать это на основе ответа Джеффатракейда:
Order Allow,Deny
Allow from all
Deny from 192.168.30.1
РЕДАКТИРОВАТЬ 2
Для полноты картины это, вероятно, больше соответствует моим требованиям:
Order Deny,Allow
Deny from 192.168.30.1
Это правило разрешает всем заходить на ваш сайт.
Order Deny,Allow
Allow from all
Deny from 192.168.30.1
В Order
Директива определяет порядок, в котором обрабатываются ваши правила. С участием Order deny,allow
сначала будет обработан запрещенный список, а затем разрешенный.
В Apache все правила обрабатываются, причем последнее совпадение является эффективным.
Итак, в этом случае ваше последнее правило будет allow from all
.
Это означает, что 192.168.30.1
сначала будет отклонено, но затем разрешено, поскольку разрешающие правила обрабатываются в последнюю очередь.
Это даст тот же результат
Order Deny,Allow
Allow from all
Deny from 192.168.30.1
Allow from 192.168.30.1
Подумайте об этом так.
order
Директива определяет порядок, в котором эти списки обрабатываются. Основная путаница заключается в том, что это сильно отличается от того, как работают межсетевые экраны, где порядок правил и первое совпадение часто определяют доступ.
Видеть: http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order