Я обновил Apache 2.4 и хотел бы заблокировать Ip, это можно сделать, используя следующее в .htaccess на Apache 2.2
Order Deny,Allow
Deny from 50.62.136.183
Однако как я могу добиться того же в .htaccess на Apache 2.4
Это еще один приемлемый синтаксис для .htaccess файл:
<RequireAll>
Require all granted
Require not ip 50.62.136.183
</RequireAll>
Этот синтаксис рекомендуется для версии 2.4, потому что синтаксис запрета заказа не всегда работает, как можно увидеть здесь. http://httpd.apache.org/docs/2.4/upgrading.html
Apache 2.4 вносит большие изменения в способ авторизации пользователей.
Компоненты авторизации в Apache 2.4 теперь могут использовать синтаксис Require, который ранее был доступен только для аутентификации. Это изменение упрощает способ определения порядка авторизации. Наборы правил до 2.4 могли быть довольно сложными. Правила в 2.4 более логичны, они определяют значение по умолчанию, а затем исключения.
Вы по умолчанию запрашиваете прием трафика, но хотите заблокировать определенный IP-адрес, правило будет выглядеть примерно так:
Require all granted
Require not ip 50.62.136.183
Это правило установит политику по умолчанию, предусматривающую прием всех IP-адресов, кроме любого запроса, поступающего с IP-адреса 111.111.111.111.
Примеры до и после Apache 2.4
Apache 2.2
<files somefile.php>
order allow,deny
deny from 50.62.136.183
</files>
Apache 2.4
<Files somefile.php>
Require all granted
Require not ip 50.62.136.183
</Files>
Не забудьте заблокировать доступ к вашему файлу .htaccess или выполнить быстрый поиск в Google, чтобы сделать ваш сайт уязвимым. Я включил конфигурацию до 2.4 и после 2.4.
Apache 2.2
# Prevent .htaccess files from being spidered or viewed via a web browser.
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
satisfy all
</FilesMatch>
Apache 2.4
# Prevent .htaccess files from being spidered or viewed via a web browser.
<Files ".ht*">
Require all denied
</Files>
Конфигурация контроля доступа изменилась, как вы можете прочитать в http://httpd.apache.org/docs/2.4/upgrading.html#access поэтому вам следует использовать директиву Require:
Require all granted
Require not ip 50.62.136.183
Если вы добавите это в свой .htaccess
файл (или Directory
раздел) он должен работать, как вы просили.
Чтобы запретить посетителям по IP-адресу, вы можете ввести ниже запись в .htaccess
Order Deny,Allow
Deny from 198.51.100.5
Пример блокировки диапазона IP-адресов:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^00\.00\.00\.
RewriteRule ^ - [F]
Чтобы перенаправить нежелательного посетителя на другой URL:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?169.166.0.5.*$ [NC]
RewriteRule .* 198.51.100.6 [L]
Примечание: данный IP-адрес является примером IP-адресов.
У меня была ошибка 500 на взаимных серверах ionos. PB пришел из командного приказа, разрешить, запретить, который больше не работает. Я меняюсь на <RequireAll> Require all granted Require not ip 50.62.136.183 </RequireAll>
Я пробовал использовать свой собственный полный IPV6, и он работает ... но я могу установить только IPV4, но не IPV6 !? (возможно, IPV6 не работает как IPV4 относительно первого числа, определяющего страну, поэтому нет способа сделать это ...) Итак, это работает <RequireAll> Require all granted Require not ip 50.62 </RequireAll>
Но это не работает: <RequireAll> Require all granted Require not ip 20a6:5bd2 </RequireAll>