mod_rewriteをURLに使用する方法と同様に、プロキシを介して渡されるすべてのページのコンテンツを置き換えることは可能ですか?代替のドキュメントは明確ではありません。
絶対パスを持つリバースプロキシしているページがいくつかあります。これはサイトを破壊します。それらは置き換える必要があり、mod_rewriteのようなツールは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>
上記のいずれも、HTML文字列の置換では機能しません。
<link href="/server///uat.site.co.jp/css/css.css
と
<link href="/server///uat.site2uk.co.uk/css/css.css
変更後の設定:
<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>
a
タグからのもののようです。このリンクをクリックすると、Webブラウザーがリンクをたどるのではなく、ファイルブラウザー(Windowsエクスプローラー)がUNCを開こうとします。HTMLテキスト内のその文字列を置き換えようとしていますか?