![Netscaler URL重写](https://linux22.com/image/690897/Netscaler%20URL%E9%87%8D%E5%86%99.png)
背景:我对 Netscaler 几乎没有经验,而且我才刚刚开始使用它们。我接到的第一项工作是我认为很简单的工作。我必须有 URLhttp://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 位应作为原始请求和最终目的地的一部分保持不变 - 我只想要子域位重写。如果以上内容看起来不错,请建议它确实如此或提出改进建议。我希望这很清楚。
我的理解是,这需要绑定到虚拟服务器,这似乎是比较容易的部分!
答案1
这是否容易实现,取决于你的重定向应该有多动态。简而言之:你希望为此操作支持多少个子域?
如果它是一个有限的集合,您可以使用简单的 URL 转换策略,这是一种专门针对此类情况的重写形式。
我可以给你另一种更动态的方法,但它需要很多额外的代码。动态方法基于 CoreLogic,这是我和同事为 Citrix NetScaler 创建的框架。你可以在以下网址阅读更多相关信息:https://netscalerrocks.com/netscaler/netscaler-core-logic-10-3-changes-enhancements/