Шаблоны URL'ов
С помощью шаблонов URL'ов вы можете задать группу адресов, к которым будет применяться политика. Шаблоны URL'ов могут содержать один или несколько подстановочных знаков *
, например https://mysite.com:*/*
. Подстановочный знак всегда заменяет элемент целиком. Например, шаблон https://mysit*.com
недопустим.
Допустимые шаблоны
scheme://host:port/path
-
scheme
— чаще всегоhttp
илиhttps
. Если схемаscheme://
не указана, политика применяется ко всем схемам. Поддерживаемые схемы:about
browser
chrome
file
http
https
Примечание
Шаблон со схемой
about
можно задать одним из способов:about:blank
about:///blank
about:///*
-
host
— полное доменное имя, включает доменное имя верхнего уровня и поддомены (указываются слева). Еще можно указывать хост, напримерlocalhost
. По умолчанию политика применяется только к указанному домену, без поддоменов. Чтобы она применялась к любому поддомену, добавьте перед доменом подстановочный знак[*.]
, например[*.]mysite.com
. Если в шаблоне есть префикс.
вhost
, то фильтр проходят только точные совпадения сhost
. -
port
— номер порта, число от 1 до 65535. Еслиport
не указан или указан*
, политика применяется ко всем портам. -
path
— URL-адрес. Еслиpath
не указан или указан*
, политика применяется ко всем путям. Зависит от регистра.
a.b.c.d
Вместо домена можно использовать адрес IPv4 вида a.b.c.d
. В IP-адресе использовать подстановочные знаки нельзя. Для порта или пути — можно, см. предыдущий пункт.
[a:b:c:d:e:f:g:h]
Вместо домена можно использовать адрес IPv6 в квадратных скобках — [a:b:c:d:e:f:g:h]
. Использовать подстановочные знаки для адреса нельзя, для порта или пути — можно.
Диапазон IP-адресов
Можно указывать диапазоны IP-адресов через маску подсети. Укажите ее без схемы и порта в формате a.b.c.d/n
для IPv4 или a:b:c:d:e:f:g:h/n
для IPv6, где n
— длина префикса. Например, маске подсети 192.168.0.1/16
будет соответствовать диапазон IP-адресов 192.168.0.1–192.168.255.255.
file://path
-
file
— схема для указания пути к файлам. -
path
— путь должен начинаться с/
. Адресfile://dir/myfile.html
недопустим, правильный вариант —file:///dir/myfile.html
. Подстановочные знаки не используются, за исключением вариантаfile:///*
, который означает, что политика будет применяться к файлам по любым адресам в сети. -
Домены и порты не указываются. Политика будет применяться к любым доменам и портам
localhost
. Например, шаблонfile:///file.html
будет соответствовать адресамfile://localhost/file.html
иfile://mysite.com/file.html
.
*
Любые URL'ы, порты и пути.
Алиасы
С помощью политики YandexUrlPatternAliases можно задавать алиасы для списков шаблонов URL'ов. Эти алиасы будут применены ко всем политикам, которые содержат имена алиасов в формате $(alias_name)
.
Внимание
Алиас не может включать в себя другой алиас.
Пример значения политики YandexUrlPatternAliases:
{
"aliases": {
"foo": "ya.ru; ya.com",
"bar": "*; [*.]com; [*.]net",
"baz": "internal_urls"
}
}
Для применения в других политиках укажите в них, например, $(foo)
для использования алиаса foo
.
Порядок фильтрации URL'ов
Шаблоны применяются к наиболее точному совпадению URL'а. В URL'е игнорируются user:pass
, разделитель #
с последующим содержанием, суффиксы /
и .
в host
.
-
Выбираются URL'ы с максимальным совпадением
host
. URL'ы с неподходящимиscheme
илиport
пропускаются. -
Из этого списка выбираются URL'ы с максимальным совпадением
path
. -
Если после такой фильтрации не осталось ни одного допустимого URL'а, в
host
удаляется самый левый поддомен, и алгоритм начинается заново с шага 1. -
Если URL соответствует шаблону, к нему применяется политика. Если ни один URL не соответствует шаблону, политика не применяется.
Недопустимые шаблоны
Шаблон | Причина |
---|---|
[*.].mysite.com |
Точка перед mysite . |
file://mysite.com/somefile.html |
В URL'е файла нельзя указывать домен. |
file://somefile.html |
Только два / вместо необходимых трех. |
http*://mysite.com |
Подстановочный знак должен заменять элемент целиком. |
https://mysit*.com |
Подстановочный знак должен заменять элемент целиком. |
file://somefile.* |
Единственно верный URL файла с подстановочным знаком — file:///* . |
[*.]127.0.0.1 |
Использование поддоменов и подстановочного знака с IP-адресами не поддерживается. |
*://mysite.com:*/path |
Вместо схемы нельзя указывать подстановочный знак * . |
Примеры шаблонов
-
[*.]mysite.com
— подойдет какmysite.com
, так иsubdomain.mysite.com
, а еще любой схеме, порту и пути. -
[*.]ysite.com
— подойдетsubdomain.ysite.com
, но неmysite.com
. -
file:///foo/bar.html
— подойдутfile://localhost/foo/bar.html
иfile://mysite.com/foo/bar.html
. -
file:///*
— подойдет любому URL'у, который начинается сfile://
. -
Схемы, порты и пути можно использовать с IP-адресами, например,
https://[::1]:8080/myfile.html
.
Полезные ссылки