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

问题描述 投票:0回答:1

我在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 /重定向到查询参数after斜杠:

https:// example.com/snapshot/-> https:// example.com:9000/?action=snapshot

我无法绕过这种重定向。我尝试了一些RewriteRule,但是只能将其重定向到/ snapshot?action = snapshot。请注意,该参数应为after斜杠,并且URL不应显示action参数。

我该如何管理?

mod-rewrite proxy apache2 reverse-proxy
1个回答
0
投票

使用RewriteRule而不是ReverseProxy可以解决问题。用这些行替换SSLProxyEngine在行上对我有用:

RewriteEngine On
RewriteRule snapshot/ http://localhost:9000/?action=snapshot [P]
RewriteRule stream/ http://localhost:9000/?action=stream [P]
© www.soinside.com 2019 - 2024. All rights reserved.