Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.htaccess中,HTTP_COOKIE是否被视为单个字符串?_.htaccess_Cookies - Fatal编程技术网

在.htaccess中,HTTP_COOKIE是否被视为单个字符串?

在.htaccess中,HTTP_COOKIE是否被视为单个字符串?,.htaccess,cookies,.htaccess,Cookies,如果cookie未设置为特定值,我想阻止对文件夹的访问 RewriteEngine On RewriteCond %{HTTP_COOKIE} !some-cookie-name=some-cookie-value [NC] RewriteRule .* /some-sort-of-error/ [NC,L,R=301] 它似乎接受cookie名称和值,并将其视为字符串cookie name=cookie value。它似乎只检查此字符串是否包含cookie name=cookie value

如果cookie未设置为特定值,我想阻止对文件夹的访问

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !some-cookie-name=some-cookie-value [NC]
RewriteRule .* /some-sort-of-error/ [NC,L,R=301]
它似乎接受cookie名称和值,并将其视为字符串
cookie name=cookie value
。它似乎只检查此字符串是否包含
cookie name=cookie value
,而不是与之相等

因此,在上面的示例中,如果cookie名称为
foo some cookie name
和/或值为
some cookie value foo
则授予对文件夹的访问权

这是正常的行为还是有什么办法使其完全匹配?
HTTP\u COOKIE
是整个COOKIE数组作为单个字符串的串联吗

有没有办法让它完全匹配

确保您可以使用此增强的正则表达式来确保不匹配所需的文本:

RewriteCond %{HTTP_COOKIE} !(^|\s)some-cookie-name=some-cookie-value(;|$) [NC]
RewriteRule ^ /some-sort-of-error/ [NC,L,R=301]

多个cookie之间用分号和空格分隔。

谢谢,(^ |\s)和(;|$)到底做什么?这就是regex<代码>(^ |\s)表示匹配线起点或空格<代码>(;|$)表示匹配
或行尾。很好的解释。因此,我从tat表中推断HTTP_COOKIE是一个字符串,每个COOKIE在其自己的行上,是吗?不是在单独的行上,而是多个COOKIE由分号和空格分隔。只需否定即可(请参见条件中更新的答案,带