使用 Trafficscript 从 URL 获取主机名

使用 Trafficscript 从 URL 获取主机名

我希望从通过 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

检查Stingray Trafficscript 指南

我认为你可能正在寻找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();

相关内容