我正在尝试在某些共享托管解决方案上托管我的前端,但遇到一些问题。
注意:这是不是应该是权威的托管解决方案,但通过这种方式我能够更准确地手动测试。
我的前端需要访问位于不同服务器上的某些 API。为了方便(身份验证等),我想将我的 API 请求代理到后端服务器。
但是,在共享托管环境中,我的选择受到限制:
- 我无法修改
VirtualHost
配置 mod_proxy
似乎已被禁用,因此ProxyPass
不允许ProxyPassReverse
mod_rewrite
似乎已启用
我考虑过使用它
RewriteRule ^/api/(.*)$ https://example.com/$1
作为某种代理,但担心它不会按预期发挥作用......
我愿意接受任何建议并且“不要这样做!”
答案1
如果没有 mod_proxy,则无法使用 Apache 创建代理。可以P
与 mod_rewrite 一起使用的标志(在RewriteRule
指令上)使用 mod_proxy。
RewriteRule ^/api/(.*)$ https://example.com/$1
据推测,你仅限于.htaccess
,在这种情况下,上述RewriteRule
图案(带有斜杠前缀)无论如何都不会匹配,因此该指令不会执行任何操作。但是,即使在更正了图案,当您在中指定绝对 URL 时RewriteRule
代换它将隐式触发外部 302 重定向(除非请求是通过 mod_proxy 发送的) - 我认为这不是您所需要的。
我只能建议你用服务器端代码来管理这个“代理”。例如,你可以使用 CURL 来“代理”请求吗?