Контекст: у меня мало / совсем нет опыта работы с Netscaler, и я только начинаю их использовать. Одна из первых работ, с которой мне дали работать, - это то, что, как я думал, будет простым. Мне нужен URL http://www.example.com/subdomain/foo/bar перенаправлен на http://subdomain.example.com/foo/bar. Я надеюсь, что профессионал Netscaler просто выбьет этого из парка.
Вот что у меня есть на данный момент:
add rewrite action RW_TEST replace "HTTP.REQ.URL.QUERY.NAME_VALUE(\"www.example.com/subdomain\")" "\"subdomain.example.com\"" -comment "Test redirect"
add rewrite policy RW_POL_TEST "HTTP.REQ.URL.CONTAINS(\"www.example.com/subdomain\")" RW_TEST
Бит / foo / bar должен оставаться нетронутым как часть исходного запроса и конечного пункта назначения - я просто хочу перезаписать бит поддомена. Если все вышеперечисленное выглядит хорошо, предположите, что это так, или предложите улучшения. Надеюсь, понятно.
Насколько я понимаю, это требует привязки к vserver, что кажется более легким делом!
Вопрос, легко ли это сделать, заключается в том, насколько динамичными должны быть ваши перенаправления. Проще говоря: сколько субдоменов вы хотите поддерживать для этого действия?
Если это ограниченный набор, вы можете использовать простые политики преобразования URL-адресов, которые являются формой перезаписи, специально доступной для таких ситуаций.
Я могу предложить вам другой, более динамичный способ, но для этого потребуется много дополнительного кода. Динамический способ основан на CoreLogic, фреймворке, который мы с моим коллегой создали для использования в Citrix NetScaler. Вы можете прочитать об этом подробнее на https://netscalerrocks.com/netscaler/netscaler-core-logic-10-3-changes-enhancements/