【发布时间】:2012-10-22 07:23:18
【问题描述】:
我目前正在 varnish 中实施付费专区。在某些情况下,我会通过 varnish 发送重定向:
sub process_request {
if (req.http.count ~ "5") {
error 302;
}
}
在相应的错误子例程中,我这样重定向:
sub paywall_redirect {
if (obj.status == 302 && req.http.count ~ "5") {
set obj.http.Location = "http://www.google.com/";
}
}
幸运的是逻辑有效,但不幸的是,我丢失了在重定向到 google.com 之前使用的域的浏览器历史记录。
假设我创建了一个新标签,为我想阅读的某篇文章打开了 www.paid-content.com/article.html 并超过了计数器限制(例如,通过重新加载页面)。然后我被重定向到www.google.com 并且浏览器的后退按钮被禁用。
假设我从www.website.com 到www.paid-content.com/article.html 并超过限制,然后返回按钮将我带回www.website.com。
这种行为是故意的吗?我应该如何在 varnish 中重定向以保留浏览器的历史记录?
感谢您的帮助! :)
【问题讨论】: