Apache 子文件夹作为反向代理不处理 RewriteRule

Apache 子文件夹作为反向代理不处理 RewriteRule

我在 Apache 2.4(服务器 A)上设置了代理,如下所示

SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyHTMLInterp On
ProxyHTMLExtended On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
<Location /proxy>
    ProxyPass https://example.com
    ProxyPassReverse https://example.com
    SetOutputFilter proxy-html
    ProxyHTMLURLMap https://example.com
</Location>

服务器 B(本例中为 example.com)有一个重写规则:

RewriteRule ^/?$ /subdir [L]

当我浏览到https://servera.com/proxy网址更改为https://servera.com/subdir这会引发 404 错误。如果我将 URL 更改为https://servera.com/proxy/subdir一切正常。

我的问题是如何设置服务器 A 的代理来保留 url 中的 /proxy?

答案1

尝试添加/类似ProxyPass例子。

<Location /proxy/>
    ProxyPass https://example.com/
    ProxyPassReverse https://example.com/
    SetOutputFilter proxy-html
    ProxyHTMLURLMap https://example.com/
</Location>

在这种情况下,代理后面的站点重定向到同一主机名上的绝对路径可能会有所帮助。

相关内容