我在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参数。
我该如何管理?
使用RewriteRule而不是ReverseProxy可以解决问题。用这些行替换SSLProxyEngine在行上对我有用:
RewriteEngine On
RewriteRule snapshot/ http://localhost:9000/?action=snapshot [P]
RewriteRule stream/ http://localhost:9000/?action=stream [P]