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