apache mod 代理到另一个具有相对路径的域

apache mod 代理到另一个具有相对路径的域

我们有一个 apache 虚拟主机 www.example.com 现在我试图让 www.example.com/mypath 去加载页面

www.example1.com 使用 mod_poxy 我有一个基础

ProxyPass /mypath http://www.example1.com
ProxyPassReverse /mypath http://www.example1.com

然而 www.example1.com 上的链接都是<a href='/xxx/xx'>example link</a>

所以当他们回到 www.example.com/mypath 时是 www.example.com/xxx/xx 我怎样才能让它们变成 www.example.com/mypath/xxx/xx

干杯

答案1

这可以通过使用能够重写链接的 mod_proxy_html 来实现。一般来说,如果您的网页使用相对路径,这不会有问题。

安装模块后,您可以使用与此类似的配置

LoadModule proxy_module      modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module    modules/mod_headers.so
LoadFile   /usr/lib/libxml2.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule xml2enc_module modules/mod_xml2enc.so

# Disable Proxy Requests since this is not a forward proxy
ProxyRequests off


ProxyPass /mypath/ http://www.example1.com/
ProxyHTMLURLMap http://www.example1.com /mypath

<Location /mypath/>
        ProxyPassReverse /
        ProxyHTMLEnable On
        ProxyHTMLURLMap  /      /mypath/

        # You cannot rewrite gzip compressed streams
        RequestHeader    unset  Accept-Encoding
</Location>

您可以阅读有关 mod_proxy_html 的更多信息这里这里

相关内容