我發現你不能在下一個Rewrite Cond中使用RewriteCond反向引用作爲模式條件...如何使用重寫規則在cookie中測試日期?
我看起來是正確的,但Tim在評論波紋管中是正確的......這仍然通過時我們超出了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]
感謝,
-Eric
順便提一句,當'RewriteCond%{TIME} <{ENV:niftyExpire}'應該爲false時,您是否測試了條件? 'mod_rewrite'不會擴展測試模式中的任何*變量,所以我不認爲這會以您期望的方式工作(目前'RewriteCond'應該始終計算爲true)。 – 2010-07-09 05:44:19
您的正確,我實際上只是測試cookie的存在......任何想法?謝謝, – Eric 2010-07-09 13:29:19
無可否認,這對於某種腳本來說確實是一項工作,因爲'mod_rewrite'並不是特別適合這些類型的任務。然而,這並不意味着一個解決方案不存在...所以我會琢磨一下,看看是否有一些瘋狂的規則集可以使這成爲可能,因爲這將是相當整潔(儘管有點不切實際,我敢肯定)。 – 2010-07-10 07:28:13