代码之家  ›  专栏  ›  技术社区  ›  niczak

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

  •  1
  • niczak  · 技术社区  · 8 年前

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

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

    我尝试过很多事情,比如:

    RewriteEngine On
    
    RewriteCond %{HTTP_x-test-header} !^abc123
    RewriteRule ^.*$ - [R=403,L]
    

    上面的工作原理是它阻塞了通信量,但是当我使用rest客户机包含报头时,它仍然返回403。很明显我做得不对,有人能指点我正确的方向吗?

    在aws上使用apache 2.4.33。

    1 回复  |  直到 8 年前
        1
  •  2
  •   anubhava    8 年前

    这条规则应该对你有用:

    RewriteCond %{HTTP:x-test-header} !^abc123$ [NC]
    RewriteRule ^ - [F]