Назад | Перейти на главную страницу

Получить имя хоста из URL-адреса с помощью Trafficscript

Я хочу получить имя хоста из 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() для извлечения любого заголовка из запроса.