我希望从通过 Zeus 的 URL 中获取主机名,并且我查看了 Trafficscript 的文档,似乎唯一的选择是正则表达式。Trafficscript 是否有返回 URL 部分的方法?
我正在寻找类似的东西解析网址
我问这个问题的原因是我有以下规则
$url = string.lowercase(http.getPath());
if(string.contains($url, "/simple_protected_url"))
{
http.redirect("http://mywebsite.com/");
}
问题是我们的临时站点和开发站点不在同一个域名上(http://mywebsite.com/
),因此规则无法正常工作。我想让规则更通用,这样它只会重定向到它运行的任何网站的根目录,并且需要一种方法来找出要重定向到的主机。
谢谢
答案1
是的,这在 TrafficScript 中相当简单,例如:
$headerHost = http.getHostHeader();
if( $headerHost == "notwhatiexpected.com") {
# do something
}
http.getHostHeader();
Host
从当前请求中提取标头。
通常可以http.getHeader()
从请求中提取任何标头。
答案2
我认为你可能正在寻找http.getRawURL()
或者只是http.getHeader( "Host" )
或http.getHostHeader()
返回 HTTP Host 标头。此值小写,且端口已删除。任何尾随的句号也将被删除。例如,如果 Host 标头为“www.Riverbed.com:80”,则 http.getHostHeader() 返回“www.riverbed.com”。
# Get the unambiguous Host header
$hostheader = http.getHostHeader();