Regex 如何替换URL中的时间戳占位符?

Regex 如何替换URL中的时间戳占位符?,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我正在寻找一种方法来模仿我在广告服务器上看到的行为,以便进行内部测试和跟踪。我希望能够检查并替换某些占位符,例如,我的URL中的{timestamp} 假设我有这样一个URL:。我目前的理论是,我应该能够向.htaccess文件添加一个重写规则,用实际的当前时间戳替换字符串{timestamp}。但我对mod_rewrite还不熟悉,对正则表达式也不太熟悉,所以我在这方面的工作进展非常缓慢。到目前为止,我只知道: RewriteCond %{QUERY_STRING} &?thetime

我正在寻找一种方法来模仿我在广告服务器上看到的行为,以便进行内部测试和跟踪。我希望能够检查并替换某些占位符,例如,我的URL中的{timestamp}

假设我有这样一个URL:。我目前的理论是,我应该能够向.htaccess文件添加一个重写规则,用实际的当前时间戳替换字符串{timestamp}。但我对mod_rewrite还不熟悉,对正则表达式也不太熟悉,所以我在这方面的工作进展非常缓慢。到目前为止,我只知道:

RewriteCond %{QUERY_STRING} &?thetime={timestamp}$
。。。我甚至不确定这是否正确。我一直在看Apache文档,所以我知道下一行应该遵循以下语法:

# RewriteRule *Pattern* *Substitution* [flags]
。。。但我不知道如何只替换这一个变量,并保留查询字符串的其余部分。此外,是否可以从.htaccess文件中以某种方式获取当前时间戳?我应该改为通过PHP头执行此操作吗?或者其他完全不同的东西

非常感谢您可能愿意提供的任何帮助

暂时忽略为什么要执行此操作,您可以通过
mod_rewrite
程序映射来执行此操作,也就是说,通过运行一些代码生成替换字符串的重写映射。类似的方法可能会奏效:

RewriteMap timemap program:/path/to/file/timestamper.py
RewriteRule {timestamp} ${timemap:NULL}
/path/to/timestamer.py
中:

#!/usr/bin/python

import sys
import time

while True:
  request = sys.stdin.readline().strip()
  response = int(time.time())
  sys.stdout.write(response + '\n')
  sys.stdout.flush()
Apache在Web服务器启动时启动
timestamer.py
,并且 然后把东西给它,让它重写。在这种情况下,Apache总是发送它
NULL
,脚本将忽略输入值并输出一个Unix 时间戳

请记住,
mod_rewrite
会处理请求(它不会 过滤由网页/webapps/etc生成的URL)。正如CBroe所说, 现在还不清楚重写URL是否是您想要的
要做。

这就是所谓的“缓存清除器”——请求的URL中始终存在的时间戳每次都使其成为不同的URL,因此客户端无法从缓存中获取它,而必须请求它。这当然意味着,当客户端已经请求时,这个时间戳值必须在URL中——因此在服务器上重写它完全是错误的。在请求此URL的HTML/JS代码中,必须更新时间戳值–这不是mod_rewrite所做的,根本不是。@chiurlo:为什么要替换时间戳?重定向后的URL有哪些示例?