是否可以使用 mod-rewrite 向查询字符串添加随机变量?

是否可以使用 mod-rewrite 向查询字符串添加随机变量?

我们在客户端使用的代理方面遇到了一个非常奇怪的问题。

简而言之,他们的代理正在缓存不该缓存的信息。我们在标头中提供了相应信息,告知代理服务器不要缓存,并且是通过 SSL 进行缓存,但这种情况仍然会发生。

我可以通过在 URL 中的查询字符串末尾附加一个随机变量来防止/补救这个问题。

例如:

/information.php 可能会显示缓存信息,而 /information.php?randomvariable=12345 则不会。

是否有一个 mod 重写规则可以适应这种情况?

谢谢!

编辑-

根据 Squillman 的要求,这是我们发送用于缓存的元数据(我说错了,这是元数据,而不是 HTTP 标头信息):

<meta http-equiv="CACHE-CONTROL" CONTENT="NO-CACHE">
<meta http-equiv="PRAGMA" CONTENT="NO-CACHE">
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT"/>
<meta http-equiv="Pragma" content="no-cache" />

希望这有帮助!谢谢。

编辑2-

我在应用程序级别实施了修复。我在每个请求的查询字符串中附加了一个随机变量(seed=random md5)。这很不妥——但确实有效。

一旦我弄清楚了为什么会发生此问题,我就会发布更新。感谢您的回复!

答案1

几个问题:

  • 您确定是代理在进行缓存吗?
  • 如果是,您做了什么来证实这一点?
  • 您知道客户使用什么代理产品吗?

事实上,它通过 SSL 传输意味着代理不应该缓存它,就是这样(抱歉,在我发表评论之前错过了 SSL 部分)。如果它是一款知名的代理产品,那么我更怀疑这真的是客户端行为不当。

我不确定在 mod_rewrite 中是否可以实现。难道你不能直接在 PHP 中生成它吗?

答案2

mod_rewrite 有一个 rnd 的 MapType,它可以做你想做的事情。

这一页在随机纯文本下。

相关内容