Почему мой обратный прокси-сервер 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.