Получить имя хоста из 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();