可以使用htaccess检查cookie值是否等于访客用户代理?
例如,我将用户代理存储在名为" _test"的cookie中,并且我想检查名为" _test"的cookie。 == Guest_User_Agent。
我试着在下面这样做:
SetEnvIfNoCase Cookie _test=^User-Agent$ whitelist
Deny from all
allow from env=whitelist
但它不起作用。关于如何实现这个的任何想法?
答案 0 :(得分:0)
您不能在右侧使用变量。您可以使用RewriteCond
指令执行相同的结果。您可以按如下方式比较http请求标头cookie
和user-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响应代码。