Я пытаюсь настроить свое устройство Netscaler с помощью Политики перезаписи.Одно из моих требований - заменить любые не доменные URL-адреса URL-адресом домашней страницы ... то есть я хочу, чтобы Netscaler заменил все внешние ссылки на странице, обслуживаемой из-за устройства, на URL-адрес домашней страницы (например: https://my.domain.edu). Тип политики перезаписи, которую я пытаюсь настроить, использует совместимый с PCRE механизм регулярных выражений для поиска определенного текста на веб-странице (возможно несколько совпадений).
хорошие ссылки:
https://your.page.domain.edu -- won't be replaced
http://good.domain.edu -- also won't be replaced
плохие ссылки (должны быть заменены URL-адресом домашней страницы):
https://www.google.com
http://not.the.best.example.org
http://another.bad.example.erewhon.edu
https://my.domain.com
У меня в настоящее время есть этот шаблон:
(https?://)(?![\w.-]+\.domain\.edu)
Согласно инструменту оценки RegEx Netscaler, это соответствуетплохие ссылки выше и не совпадают с хорошими ссылками, поэтому, кажется, это работает ... фактически, когда я запускаю это на тестовой странице, Netscaler находит все URL-адреса, которые я хочу заменить, и оставляет хорошие URL-адреса в покое.
Проблема в том, что Netscaler не заменяет URL-адреса так, как я хочу: он заменяет группу (https?: //) URL-адресом домашней страницы, но оставляет оставшуюся часть плохойURL.Например, он заменяет http://www.google.com на: https://my.domain.eduwww.google.com
. Я могу настроить Политику перезаписи для замены определенных URL-адресов (например, https://www.google.com),, поэтому я знаю, что механизм работает. Очевидно,, это не сработает для общего случая.
Я пытался заключить все регулярные выражения в скобки, но это ничего не изменило.
Можно ли написать регулярное выражение дляв общем случае, чтобы соответствовать полный URL для всех доменов, которые не являются моими?
Заранее спасибо за любую помощь!