使用 .htaccess 仅在存在具有特定值的标头时允许请求

Nic*_*erg 6 apache .htaccess mod-rewrite

我有一个情况,我想保护一些文件(列出目录并访问内容),除非存在特定标头并且该标头包含正确的值。

例如,如果存在名为“x-test-header”的标头并且其值为“abc123”,则让流量通过,否则返回 403。

我尝试过多种方法,例如:

RewriteEngine On

RewriteCond %{HTTP_x-test-header} !^abc123
RewriteRule ^.*$ - [R=403,L]
Run Code Online (Sandbox Code Playgroud)

上面的代码可以阻止流量,但是当我使用 REST 客户端包含标头时,它仍然返回 403。显然我没有做正确的事情,有人能指出我正确的方向吗?

在 AWS 上使用 Apache 2.4.33。

anu*_*ava 6

这条规则应该适合你:

RewriteCond %{HTTP:x-test-header} !^abc123$ [NC]
RewriteRule ^ - [F]
Run Code Online (Sandbox Code Playgroud)