![为什么我的 Apache 反向代理在发送回客户端时无法转换锚点 HREF 属性?](https://linux22.com/image/667444/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20Apache%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%9C%A8%E5%8F%91%E9%80%81%E5%9B%9E%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%97%B6%E6%97%A0%E6%B3%95%E8%BD%AC%E6%8D%A2%E9%94%9A%E7%82%B9%20HREF%20%E5%B1%9E%E6%80%A7%EF%BC%9F.png)
我有
# For blog
LoadModule proxy_html_module libexec/mod_proxy_html.so
LoadModule ssl_module libexec/mod_ssl.so
LoadModule xml2enc_module libexec/mod_xml2enc.so
SSLProxyEngine on
ProxyRequests off
ProxyPass /blog https://xxxx.wordpress.com
ProxyPassReverse /blog https://xxxx.wordpress.com
ProxyHTMLEnable On
ProxyHTMLURLMap https://xxxx.wordpress.com /blog
<Location /blog>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap / /blog
RequestHeader unset Accept-Encoding
#LogLevel proxy:debug
</Location>
遵循这些指南:
http://www.apachetutor.org/admin/reverseproxies
https://httpd.apache.org/docs/trunk/mod/mod_proxy.html
当我访问 URL 时http://www.xxxx.com/blog/它不能替代锚链接https://xxxx.wordpress.com/2015/09/16/hello-world/与/blog。
它在本地可以运行,但不能在生产中使用。
以下是通过代理并出现在浏览器中的 HTML 示例:
<h1 class="entry-title">
<a href="https://xxxx.wordpress.com/2015/09/16/hello-world/" rel="bookmark">Hello world!</a></h1>
我还使用了其他博客主机(HostGator)而不是 Wordpress.com,但仍然不起作用。(但这不重要。)
Apache 2.4.16,生产:2.4.10(?)
答案1
除非目标主机具有返回预期 URL 的功能,否则响应主体中的链接无法使用代理引用进行更新,否则您需要通过附加编码明确管理响应主体中的链接。 更多细节..
如果它在开发环境中工作,则意味着在生产环境中缺少这样的配置。