示例 6:迁移 Apache 重写模块规则
示例 Inc. 目前正在使用 Apache 重写模块来处理发送到其 Web 服务器的搜索请求,并根据请求 URL 中的信息将这些请求重定向到相应的服务器。示例公司希望通过将这些规则迁移到 Citrix ADC 平台来简化其设置。
示例当前使用的几个 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]
要在 Citrix ADC 上实施这些 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。
Citrix ADC 现在处理这些搜索请求时,与迁移 Apache 重写模块规则之前的 Web 服务器完全相同。
示例 6:迁移 Apache 重写模块规则
在本文中
已复制!
失败!