APIKEY 的 RewriteCond

APIKEY 的 RewriteCond

我正在尝试创建一个 RewriteRule,它会查看传入的 Header APIKey,如果它包含匹配的字符串,那么它将重定向到相应的 URL,否则,它应该是无法访问的。

我正在使用带有 Post 方法的 Postman 测试这种场景。

请在下面找到我的代码:

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

/manager/要阻止对任何以 HTTP 请求标头APIKey未提供特定值(例如)开始的 URL 路径的访问(即 403 Forbidden),ABCD123456789您可以使用以下 mod_rewrite 规则:

RewriteEngine On

RewriteCond %{HTTP:APIKey} !=ABCD123456789
RewriteRule ^/?manager/ - [F]

:
RewriteCond %{ENV:APIKEY}   ^ABCD123456789$
RewriteRule .* - [E:APIKEY=ABCD123456789]

这实际上什么也没做。它将环境变量设置APIKEY为该值ABCD123456789,但仅当环境变量APIKEY已设置为该值时才会执行!

相关内容