У меня проблемы с блокировкой IP-адреса в .htaccess
Я положил
Require not ip 192.168.20.218
Он работает, но блокирует всю сеть вместо блокировки одного IP.
Может кто-нибудь решить эту проблему?
Я работаю на Apache 2.4, используя Ubuntu 14.04.3 LTS
ОБНОВИТЬ: сценарий такой, я использую IP 192.168.20.218
на моем компьютере я пытаюсь выполнить тест, чтобы заблокировать этот IP-адрес, я пробовал:
<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>
Предполагается, что это заблокирует мой доступ, но вместо этого все еще позволяет мне получить доступ к странице. Если я вытащу Require all granted
он блокирует всю сеть.
Вы не можете использовать отрицается Сама по себе директива для авторизации доступа. Как отмечено в документация:
Результат
Require
директива может быть отменена с помощьюnot
вариант. Как и в случае с другой отрицательной директивой авторизации<RequireNone>
, когдаRequire
директива инвертирована, она может только завершиться ошибкой или вернуть нейтральный результат и, следовательно, никогда не может независимо авторизовать запрос.
Вместо этого вам нужно будет сделать что-то вроде следующего:
<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>
Таким образом, вы разрешаете всем и исключаете определенный IP-адрес.
В <RequireAll>
container, как следует из его названия, требует, чтобы все содержащиеся в нем директивы были выполнены.
У меня была такая проблема. Я забыл, что у меня есть обратный прокси-сервер nginx. IP-адрес, поступающий в apache, был IP-адресом обратного прокси от nginx. Вместо этого мне пришлось установить собственный заголовок в обратном прокси-сервере, содержащий истинный IP-адрес, а затем проверить этот заголовок в .htaccess вместо проверки IP-адреса.