示例 5:将外部 URL 重定向到内部 URL

示例 Inc. 希望隐藏用户的实际服务器机房配置,以提高 Web 服务器上的安全性。

为此,您需要使用下表所示的值创建重写操作。对于请求标头,表中的操作将 www.example.com 修改为 web.hq.example.net。对于响应标头,操作执行相反的操作,将 web.hq.example.net 转换为 www.example.com

操作名称 重写操作的类型 选择目标引用的表达式 替换文本的字符串表达式
Action-Rewrite-Request_Server_Replace REPLACE HTTP.REQ.HOSTNAME.SERVER “Web.hq.example.net”
Action-Rewrite-Response_Server_Replace REPLACE HTTP.RES.HEADER(“Server”) “www.example.com”

第一个策略检查传入请求是否有效,如果有效,则执操作作重写请求 _Server_Rever_Rereplace 操作。第二个策略检查响应是否源自服务器 web.hq.example.net。如果这样做,则执行 Action-Rewrite-Response_Server_Replace 操作。

重写用于重定向外部 URL 的操作和策略示例。

add rewrite action Action-Rewrite-Request_Server_Replace REPLACE HTTP.REQ.HOSTNAME.SERVER '"Web.hq.example.net"

add rewrite action Action-Rewrite-Response_Server_Replace REPLACE HTTP.RES.HEADER("Server") '"www.example.com"'

add rewrite policy Policy-Rewrite-Request_Server_Replace HTTP.REQ.HOSTNAME.SERVER.EQ("www.example.com") Action-Rewrite-Request_Server_Replace NOREWRITE

add rewrite policy Policy-Rewrite-Response_Server_Replace HTTP.REQ.HEADER("Server").EQ("Web.hq.example.net") Action-Rewrite-Response_Server_Replace

最后,您将绑定重写策略,为每个策略分配 500 的优先级,因为它们位于不同的策略库中,因此不会发生冲突。对于两个绑定,您应该将 goto 表达式设置为 Next。

bind rewrite global Policy-Rewrite-Request_Server_Replace 500 END -type REQ_DEFAULT

bind rewrite global Policy-Rewrite-Response_Server_Replace 500 END -type RES_DEFAULT

请求标头中的 www.example.com 的所有实例现在都更改为 web.hq.example.net,响应标头中的所有 web.hq.example.net 实例现在都更改为 www.example.com

示例 5:将外部 URL 重定向到内部 URL