本质上,我正在尝试使用(出于此问题范围之外的原因)查询字符串参数的第一个字符来对两台服务器进行负载平衡,以决定向哪个服务器发送流量。
为了解释我到目前为止所拥有的,如果我们以“用户”作为参数,并假设有两台服务器。服务器一用于服务名称以 A 和 M 之间的字母开头的用户,第二台服务器用于服务 N 到 Z。
因此,例如请求
https://www.example.com/service/?用户=保罗
会去
https: //*am.internal。*example.com/service/?user=paul
并要求
https://www.example.com/service/?用户=orla
会去
https: //*nz.internal。*example.com/service/?user=orla
到目前为止,我有这样的事情:
RewriteEngine On
RewriteCond %{Query_String} ^[\?\&]user=[n-z].*
RewriteRule ^(.*) https://n-z. internal .example.com/service/$1 [P]
RewriteRule ^(.*) https://a-m.internal.example.com/service/$1 [P,L]
首先,如果是 nz,我只是重写,并将 URL 附加到规则 ($1)。如果不匹配nz,那么我默认发送给am。
我是 mod_rewrite 的新手,我似乎找不到可以按我想要的方式运行的组合或排列。
有人可以解释为什么我没有得到预期的结果吗?谢谢!