htaccess - 检查具有多个值的多个 cookie

htaccess - check multiple cookies with multiple values

我正在尝试根据浏览器 cookie 限制文件夹和文件访问。

只有满足这 3 个条件才能访问文件:

  1. Wordpress 用户已登录
  2. example_cookie 存在
  3. example_cookievalue1value2 但不是其他任何东西,例如value3value4、等等

我的 .htaccess 文件目前看起来像这样:

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteCond %{HTTP_COOKIE} !example_cookie [NC]
RewriteCond %{HTTP_COOKIE} !example_cookie=value1;? [NC]
RewriteCond %{HTTP_COOKIE} !example_cookie=value2;? [NC]
RewriteRule ^(.*)$ - [R=403,L]

只要具备前两个条件似乎就可以正常工作。

如果未登录或未设置 example_cookie,最后 2 个条件仍会阻止访问,但允许访问 example_cookie 的任何设置值,而不仅仅是 value1value2.

非常感谢任何帮助,谢谢!

(编辑过的)发布的代码现在可以工作了。在第 4 行,我把 ;? 弄错了!我也不需要第 3 行。 最终代码:

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteCond %{HTTP_COOKIE} !example_cookie=value1;? [NC]
RewriteCond %{HTTP_COOKIE} !example_cookie=value2;? [NC]
RewriteRule ^(.*)$ - [R=403,L]