可以使用htaccess检查cookie值是否等于访客用户代理?

时间:2017-12-29 13:51:02

标签: .htaccess

可以使用htaccess检查cookie值是否等于访客用户代理?

例如,我将用户代理存储在名为" _test"的cookie中,并且我想检查名为" _test"的cookie。 == Guest_User_Agent。

我试着在下面这样做:

SetEnvIfNoCase Cookie _test=^User-Agent$ whitelist
Deny from all
allow from env=whitelist

但它不起作用。关于如何实现这个的任何想法?

1 个答案:

答案 0 :(得分:0)

您不能在右侧使用变量。您可以使用RewriteCond指令执行相同的结果。您可以按如下方式比较http请求标头cookieuser-agent

RewriteCond %{HTTP:Cookie} _test="?([^;]*)"? 
RewriteCond %1##%{HTTP:User-Agent} !^(.*)##\1 [NC]
RewriteRule ^ - [R=404,L]

此处RewriteCond左侧通过分隔符##连接两个变量,%1反向引用与Cookie值_test匹配,第二个变量{{1 }}。然后在右侧,我们匹配并捕获User-Agent之前的值并使用反向引用##进行匹配。如果它们具有不同的值,则提供http 404响应代码。