Я хочу заблокировать все IP-адреса, начиная с этого 2a01:598:xxx
в моем .htaccess
файл на моем веб-сайте WordPress.
Но каждый раз, когда я редактирую .htaccess
файл Я больше не могу посещать свой сайт. Я получаю внутреннюю ошибку сервера.
И конец моей .htaccess
файл после # END WordPress
Я добавил Код:
Require all granted
Require not ip 2a01:598:
Я тоже пробовал этот вариант:
Require all granted
Require not ip 2a01:598:::
Но ничего не вышло. Даже когда я пытаюсь заблокировать свой собственный IPv4-адрес следующим образом:
Require all granted
Require not ip 11.222.33.444 (with my IP instead)
Я получаю 500 Internal Server Error?
Я не знаю что делать Я просто хочу заблокировать все IP-адреса, начиная с этого 2a01:598:
в моем .htaccess
файл.
Если вы получаете 500 Internal Server Error, вам необходимо проверить журнал ошибок вашего сервера для получения подробной информации об ошибке. Статус 500 - это просто общий ответ, возвращенный клиенту из-за какой-то конкретной ошибки сервера.
Здесь есть ряд проблем, которые приводят к ошибкам ...
Require not ip 2a01:598: : Require not ip 2a01:598:::
В обоих случаях указанные адреса IPv6 2a01:598:
и 2a01:598:::
недействительны - следовательно, ответ об ошибке 500. Вы могли бы использовать 2a01:598::
(2 двоеточия), но это сокращение от конкретный IPv6-адрес 2a01:598:0:0:0:0:0:0
, что вам не нужно.
С адресами IPv4 Apache позволяет использовать частичные IP-адреса (целые октеты), например. 203.0.113
(без конечной точки). Для адресов IPv6 можно ожидать 2a01:598
быть разрешенным, однако, похоже, что это не поддерживается, поскольку это снова приводит к ответу 500 и регистрации ошибки «Указанный IP-адрес недействителен».
Чтобы указать диапазон адресов IPv6, вам необходимо использовать нотацию CIDR. Например, чтобы указать диапазон IP-адресов, с которых 2a01:598:
", вам нужно будет использовать 2a01:598::/32
используя обозначение CIDR (пример).
Require all granted Require not ip 11.222.33.444
Когда вы указываете несколько Require
директивы таким образом, Apache значения по умолчанию к <RequireAny>
контейнер. Отрицательный директивы (т.е. Require not
) не разрешены в <RequireAny>
контейнер; отсюда ошибка 500. ("отрицательная директива Require не действует в <RequireAny>
директива "регистрируется как ошибка.) Вам необходимо явно использовать <RequireAll>
контейнер здесь.
Ссылка:
Итак, вместо этого вам нужно будет сделать что-то вроде следующего:
<RequireAll>
Require all granted
Require not ip 2a01:598::/32
</RequireAll>
И конец моей
.htaccess
файл после# END WordPress
По логике вещей, это должно быть в верхней части вашего .htaccess
файл, перед то # BEGIN WordPress
маркер комментария. Директивы блокировки должны быть первыми. Однако это, вероятно, не имеет значения (из-за того, как Apache обрабатывает разные модули).