Я хочу получить имя хоста из URL-адреса, поскольку он поступает через Zeus, и я просмотрел документацию по Trafficscript, и кажется, что единственный вариант - регулярное выражение. Есть ли у Trafficscript метод для возврата частей URL?
Я ищу что-то вроде parse_url
Причина, по которой я спрашиваю, в том, что у меня есть следующее правило
$url = string.lowercase(http.getPath());
if(string.contains($url, "/simple_protected_url"))
{
http.redirect("http://mywebsite.com/");
}
Проблема в том, что наши промежуточные и разрабатываемые сайты находятся на разных доменных именах (http://mywebsite.com/
), поэтому правило работает некорректно. Я хочу сделать правило более общим, чтобы оно просто перенаправлялось в корень любого веб-сайта, на котором оно запущено, и нуждался в способе определения хоста для перенаправления.
Спасибо
Проверить через Руководство по 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();
Да, в TrafficScript это довольно просто, например:
$headerHost = http.getHostHeader();
if( $headerHost == "notwhatiexpected.com") {
# do something
}
http.getHostHeader();
извлекает Host
заголовок из текущего запроса.
И вообще есть http.getHeader()
для извлечения любого заголовка из запроса.