ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

示例 6:迁移 Apache 重写模块规则

Example Inc. 目前正在使用 Apache 重写模块来处理发送到其 Web 服务器的搜索请求,并根据请求 URL 中的信息将这些请求重定向到相应的服务器。Example Inc. 希望通过将这些规则迁移到 NetScaler 平台来简化其设置。

示例当前使用的几个 Apache 重写规则如下所示。如果搜索请求没有 siteID 字符串或 siteID 字符串等于零 (0),则这些规则将搜索请求重定向到特殊结果页面,如果这些条件不适用,则重定向到标准结果页面。

下面是当前的 Apache 重写规则:

  • rewriteCond% {REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} !SiteId= [OR]
  • RewriteCond %{QUERY_STRING} SiteId=0
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • rewriteRule ^.*$ results2.html [P, L]
  • rewriteCond% {REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • rewriteRule ^.*$ /results.html [P, L]

要在 NetScaler 上实现这些 Apache 重写规则,您需要使用下表中的值创建重写操作。

操作名称 重写操作的类型 选择目标引用的表达式 替换文本的字符串表达式
Action-Rewrite-Display_Results_NulSiteID REPLACE HTTP.REQ.URL “/results2.html”
Action-Rewrite-Display_Results REPLACE HTTP.REQ.URL “/results2.html”

然后,您将使用下表所示的值创建重写策略。

策略名称 操作名称 未定义的动作 表达式
Policy-Rewrite-Display_Results_NulSiteID Action-Rewrite-Display_Results_NulSiteID NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) && (!HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=”) || HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=0”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))
Policy-Rewrite-Display_Results Action-Rewrite-Display_Results NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))

最后,您将绑定重写策略,将第一个策略的优先级分配为 600,为第二个策略分配优先级 700,然后将两个绑定的 goto 表达式设置为 NEXT。

现在,NetScaler 处理这些搜索请求的方法与迁移 Apache 重写模块规则之前的 Web 服务器完全相同。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
示例 6:迁移 Apache 重写模块规则