我使用重写规则设置cookie,并在工作(简化简便起见):Apache重写规则:如何检查cookie中的主机名?
RewriteCond %{QUERY_STRING} set_cookie=1 [NC]
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}?skip=1 [QSA,NE,NC,L,CO=test_%{HTTP_HOST}:tmp:%{HTTP_HOST}:5:/]
这一个设置与该名TEST_ {} HOST_NAME一个cookie。现在我想读取下一个请求的cookie值。我试过这个(和一些变体),但这似乎不起作用。
RewriteCond %{QUERY_STRING} skip [NC]
RewriteCond %{HTTP_COOKIE} ^.*test_%{HTTP_HOST}=tmp.*$ [NC]
RewriteRule ^(.*)$ - [L]
当我在谷歌上搜索,我found an article这说明如下:
如果你想知道, “为什么不使用%{HTTP_HOST}代替corz.org, 创建通用的代码?” ,据我所知,无法使用 Atomic Back References和一些严重的POSIX 1003.2+ Jiggery-Pokery测试 一个服务器变量与另一个RewriteCond。
我想这是我的问题,但我对如何解决它有点不知所措。任何帮助是极大的赞赏。
Regards, Joost。
为什么[F]而不是[L]? – jberculo 2014-10-02 09:21:45
并不会因为部分具有相同名称的多个Cookie而中断吗?例如subdomain.domain.com和domain.com cookies都可以在subdomain.com上使用? 所以cookie用不同的值命名test_subdomain.domain.com和test_domain.com? – jberculo 2014-10-02 09:24:39
我不明白它的工作。我真的需要能够检查一个确切的cookiename,因为可能存在多个。此外,我需要能够检查没有cookie ... – jberculo 2014-10-02 15:10:49