我发现你不能在下一个 RewriteCond 中使用 RewriteCond 反向引用作为模式条件......
更新:事实证明,mod_rewrite 不会扩展测试模式中的任何变量,因此我实际上只是在测试 cookie 是否存在...关于如何实际测试值而不是仅仅测试存在性,有什么想法吗?
RewriteCond %{HTTP_COOKIE} niftyExpire=([^;\ ]+)
RewriteRule .*index.html /fake.html [E=niftyExpire:%1,C]
RewriteCond %{TIME} <{ENV:niftyExpire}
RewriteRule .*fake.html /pass.html [R,L]
RewriteRule .*index.html /fail.html [R,L]
谢谢,
-埃里克
答案1
如果我有代表的话我会发表评论......
我认为你不需要在你的示例中使用反斜杠。例如
RewriteCond %{HTTP_COOKIE} niftyExpire\=([^; ]+) [NC]
应该只是
RewriteCond %{HTTP_COOKIE} niftyExpire=([^; ]+) [NC]
这里有一个很好的资源和一些例子(不是专门关于日期,但包括基于 cookie 值的重写规则):