htaccess比较cookie值,如果评估返回true / false,则redirect

我希望有人在htaccess中使用if-else语句来帮助我。 我想要的是htaccess读取一个cookie并检查它的值是否等于一个定义的值。 如果计算结果为false,则应该优先执行redirect,并阻止访问请求的文件夹。 如果评估结果不真实,也许所有的否定会更好。

我知道下面的代码检查是否设置了一个命名的cookie值。 如果没有设置,它将执行它下面的重写规则。 但是,我怎么能调整这条线,以便检查它是否等于某个值?

RewriteEngine On RewriteCond %{HTTP_COOKIE} !^.*cookie_name.*$ [NC] RewriteRule .* http://www.google.com [NC,L] 

我想要什么,但在.htaccess风格:

 if ($_COOKIE['cookie_name'] != 'specific_value'){ //rewrite_rule or deny from all. } 

你很近 Cookie字符串需要a =

 RewriteEngine On RewriteCond %{HTTP_COOKIE} !cookie_name=specific_value; [NC] RewriteRule ^ http://www.google.com [NC,L] 

required_value替换为required_value匹配的值。

 RewriteEngine On RewriteCond %{HTTP_COOKIE} !cookie_name=required_value;? [NC] RewriteRule ^ http://www.google.com [R=301,L] 

;? 确保在存在多个cookie值对时或cookie_name是唯一的cookie集时都会发生匹配。 这也可以防止匹配一个cookie值,如只匹配一个(一个子字符串)是必需的。

您可以使用此代码来检查Cookie中的特定值:

 RewriteEngine On RewriteCond %{HTTP_COOKIE} !cookie_name=specific_value [NC] RewriteRule ^ http://www.google.com [NC,L,R=302]