ProxyHTML pour réécrire L'URL
J'ai 2 serveurs apache mis en place. Un sur le port 80 et un autre sur le port 8077. Je veux tout voir sur le serveur sur 8077 via un proxy inverse. En ce moment j'ai:
ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap / /translate/
Cela me permet d'accéder à la page initiale du site, mais les liens vers les images, css et autres pages ne fonctionnent pas.
Par exemple, le css dans le html s'affiche comme
/css/style.css
Où je veux vraiment que ce soit
/translate/css/style.css
Pour qu'il récupère le fichier du serveur 8077. Que puis-je faire avec le réglage actuel pour que cela fonctionne?
1 réponses
Ok, c'est ce que j'ai fait pour le faire fonctionner
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap http://www.example.com:8087 /translate/
<Location /translate/>
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap http://www.example.com:8077 /translate/
ProxyHTMLURLMap / /translate/
ProxyHTMLURLMap /translate/ /translate/
RequestHeader unset Accept-Encoding
</Location>
Cela semble bien fonctionner. Le ProxyHTMLURLMap http://www.example.com:8077 / translate / line était seulement nécessaire pour traduire certaines URL basées sur "referrer" qui faisaient que certaines pages finissaient par essayer de servir directement à partir du serveur de port 8077.