我必须转发来自互联网客户端的请求,如下所示:
https://www.app.com/AppServer?User=guest&ID=8PKX3Q2DT45&Type=laptop&Cmd=exec
通过更改一些参数到内部服务器:
https://192.168.0.1/AppServer?User=guest&ID=NEW_ID&Type=NEW_TYPE&Cmd=exec
使用Apache Web服务器。 NEW_ID和NEW_TYPE是静态变量。
我尝试使用ProxyPass和RewriteCond%{QUERY_STRING}进行不同的操作,但没有成功。
RewriteEngine On
RewriteCond %{QUERY_STRING} .*User=(\w+).*&ID=(\w+).*&Type=(\w+).*&Cmd=(\w+).*$ [NC]
RewriteRule . HOST/AppServer?User=$1&ID=NEW_ID&Type=NEW_TYPE&Cmd=Exec [R=301,L]
ProxyPass HOST/AppServer
ProxyPassReverse HOST/AppServer
(由于帖子限制,网址已被HOST取代)
此外,我应该可以使用RequestHeader更改标头(这可以正常工作)。
你能帮我构建配置吗?
最诚挚的问候,
答案 0 :(得分:0)
我回答我的问题,这项工作:
#NEW UA
RequestHeader set User-Agent "NEW_UA"
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)OLD_ID(.*)OLD_DEVICE(.*)$
RewriteRule (.*) HOST/AppServer/?%1NEW_ID%2NEW_DEVICE%3 [P,L]
ProxyPass / HOST/
ProxyPassReverse / HOST
谢谢,