Назад | Перейти на главную страницу

Перезапись URL-адреса Netscaler

Контекст: у меня мало / совсем нет опыта работы с 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/