始终将参数传递给 apache 反向代理

Always pass paremeter to apache reverse proxy

我在 http 上有一个服务器 运行。使用反向代理,我能够将其包装到 https 中并将其作为 https 服务器。 http 服务器在端口 9000 上运行并需要 GET 参数 action.

因此,使用此配置,我可以将我的 http 包装在 https:

SSLEngine On
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

SSLProxyEngine On
ProxyPass /snapshot/ http://localhost:9000/
ProxyPassReverse /snapshot/ http://localhost:9000/

但是我仍然想从 /snapshot/ 重定向到一个查询参数 一个斜线之后:

https:// 示例。com/snapshot/ -> https:// example.com:9000 /?action=快照

我无法理解这个重定向。我尝试了一些 RewriteRule,但只能让它重定向到 /snapshot?action=snapshot。 请注意参数应该是 斜杠之后并且 URL 不应该显示动作参数。

我该如何管理?

使用 RewriteRule 而不是 ReverseProxy 达到了目的。用这些行替换 SSLProxyEngine On 行对我有用:

RewriteEngine On
RewriteRule snapshot/ http://localhost:9000/?action=snapshot [P]
RewriteRule stream/ http://localhost:9000/?action=stream [P]