Почему мой обратный прокси-сервер Apache не работает для преобразования якорных атрибутов HREF при отправке обратно клиенту?

Я имею

# 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>

Следуя этим инструкциям:

https://devcenter.heroku.com/articles/custom-php-settings

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-адресов, или же вам необходимо явно управлять ссылками в теле ответа с помощью дополнительного кодирования. Подробнее..

Если он работает в dev, значит, есть такой конфиг, который вам не хватает в prod.

Другие вопросы по тегам