Я пытаюсь создать правило RewriteRule, которое просматривает входящий заголовок на предмет наличия соответствующей строки, APIKey
и если он содержит соответствующую строку, то перенаправляет на соответствующий URL-адрес, в противном случае он должен быть недоступен.
Я тестирую этот сценарий, используя Postman с методом Post.
Ниже вы найдете мой код:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/manager/(.*)
RewriteCond %{REQUEST_URI} ^/manager/secure/rest/groovy-service-invoke/v2/demo/firewall-test/v0.1.0/(.*)$
RewriteCond %{ENV:APIKEY} ^ABCD123456789$
RewriteRule .* - [E:APIKEY=ABCD123456789]
решение1
Чтобы заблокировать доступ (например, 403 Forbidden) к любому URL-пути, который начинается, /manager/
когда заголовок HTTP-запроса APIKey
не содержит определенного значения (например, ABCD123456789
), можно использовать следующее правило mod_rewrite:
RewriteEngine On
RewriteCond %{HTTP:APIKey} !=ABCD123456789
RewriteRule ^/?manager/ - [F]
: RewriteCond %{ENV:APIKEY} ^ABCD123456789$ RewriteRule .* - [E:APIKEY=ABCD123456789]
На самом деле это ничего не делает. Это устанавливает переменную окружения APIKEY
в значение, ABCD123456789
но только когда env var APIKEY
уже установлена в это значение!