Как заблокировать определенный HTTP-запрос с помощью mod_rewrite? - PullRequest
0 голосов
/ 21 мая 2019

Созданное регулярное выражение RewriteCond не перехватывает выдержку из журнала, хотя она проверена. Следовательно, запрос не блокируется, как ожидалось.

Я бы хотел заблокировать запросы к указанному ниже URL

Регулярное выражение операторов RewriteCond было протестировано с выдержкой из журнала с помощью regex101.com, но, похоже, не перехватывает выдержку при применении на сервере.

Сначала я попробовал весь URL-адрес запроса, но даже (намного короче) RewriteCond, приведенный ниже, не перехватил запрос. Я тоже пробовал

Запрос, который следует заблокировать:

www.foobar.com/?eID=FOO&type=bar&search%5Bthis%5D%5Bthat%5D%5Btest%5D%5Blatitude%5D=11.1111111111111

1 Правило перезаписи - не перехватывает вышеупомянутый URL:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} ^(\/)[?](eID=FOO)$ [NC]
  RewriteRule ^.*$ - [F,L]
</IfModule>

2 То же самое с этим:

RewriteCond %{REQUEST_URI} ^(\/\?)(eID=FOO)$ [NC]

Я ожидал, что запрос будет заблокирован. Но ничего из вышеперечисленного не работает.

Любая помощь очень ценится. Благодарю.

С уважением,

Марк

1 Ответ

0 голосов
/ 21 мая 2019

Insted of REQUEST_URI попробуйте упоминание ниже QUERY_STRING и убедитесь, что rewrite_module загружен или включен

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{QUERY_STRING} ^.*(eID=FOO).* [NC]
    RewriteRule ^(.*)$ - [F,L] 
</IfModule>

LoadModule rewrite_module /opt/jboss/httpd/lib/httpd/modules/mod_rewrite.so

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...