Получить имя хоста из 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/) так что правило не работает хорошо. Я хочу сделать правило более общим, чтобы оно просто перенаправляло в корень любого веб-сайта, на котором оно работает, и мне нужен способ выяснить хост для перенаправления.

Спасибо

2 ответа

Да, это довольно просто в TrafficScript, например:

$headerHost = http.getHostHeader();

if( $headerHost == "notwhatiexpected.com") {
   # do something

}

http.getHostHeader(); извлекает Host заголовок из текущего запроса.
И вообще есть http.getHeader() извлечь любой заголовок из запроса.

Проверьте через Stingray Trafficscript Guide.

Я думаю, что вы можете искать http.getRawURL() или просто http.getHeader( "Host" ) или же http.getHostHeader()

Возвращает заголовок HTTP Host. Это значение в нижнем регистре и порт удален. Любой трейлинг-стоп также удаляется. Например, если заголовок хоста - "www.Riverbed.com:80", тогда http.getHostHeader() возвращает "www.riverbed.com".

# Get the unambiguous Host header
$hostheader = http.getHostHeader();
Другие вопросы по тегам