Est-il possible de remplacer le contenu de chaque page passée par un proxy similaire à la façon dont mod_rewrite est utilisé pour les URL? La documentation sur le substitut n'est pas claire.
J'ai des pages dont je suis le proxy inverse qui ont des chemins absolus. Cela brise le site. Ils doivent être remplacés et des outils comme mod_rewrite ne les récupèrent pas car ce ne sont pas des demandes d'URL.
<VirtualHost *:80>
ServerName servername1
ServerAlias servername2
ErrorLog "/var/log/proxy/jpuat_prox_error_log"
CustomLog "/var/log/proxy/jpuat_prox_access_log" common
RewriteEngine on
LogLevel alert rewrite:trace2
RewriteCond %{HTTP_HOST} /uat.site.co.jp$ [NC]
RewriteRule ^(.*)$ http://jp.uat.site2uk.co.uk/$1 [P]
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|uat.site.co.jp|jp.uat.site2uk.co.uk|i"
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://uat.site.co.jp/
ProxyPassReverse / http://uat.site.co.jp/
</VirtualHost>
Aucun des éléments ci-dessus ne fonctionne pour remplacer la chaîne HTML
<link href="/server///uat.site.co.jp/css/css.css
avec
<link href="/server///uat.site2uk.co.uk/css/css.css
Conf après les changements:
<VirtualHost *:80>
ServerName jp.uat.site2uk.co.uk
ServerAlias uat.site.co.jp
ErrorLog "/var/log/proxy/jpuat_prox_error_log"
CustomLog "/var/log/proxy/jpuat_prox_access_log" common
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://uat.site.co.jp/
ProxyPassReverse / http://uat.site.co.jp/
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|uat.site.co.jp|jp.uat.site2uk.co.uk|ni"
</VirtualHost>
link
balises. Si vous le pouvez, je ne peux pas dire que ce serait une bonne idée. En tout cas, ce n'est pas votre question. Selon les documents Apache , la substitute
directive n'est valide qu'à l'intérieur de Directory
blocs ou de .htaccess
fichiers. Essayez de créer un <location>
bloc (même si c'est pour /) et mettez la directive dedans.
a
balise HTML . En cliquant sur ce lien, le navigateur Web ne suivra probablement pas le lien, mais plutôt un navigateur de fichiers (Explorateur Windows) essayant d'ouvrir l'UNC. Essayez-vous de remplacer cette chaîne dans du texte HTML?