RewriteCond QUERY_STRING或/和ProxyPass?

时间:2015-06-05 21:56:16

标签: apache mod-rewrite proxypass

我必须转发来自互联网客户端的请求,如下所示:

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更改标头(这可以正常工作)。

你能帮我构建配置吗?

最诚挚的问候,

1 个答案:

答案 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

谢谢,