Ist es möglich, Inhalte auf jeder Seite zu ersetzen, die über einen Proxy geleitet wird, ähnlich wie mod_rewrite für URLs verwendet wird? Die Dokumentation zum Ersatz ist nicht klar.
Ich habe einige Seiten, die ich als Reverse-Proxy verwende und die absolute Pfade haben. Dies bricht die Website. Sie müssen ersetzt werden und Tools wie mod_rewrite nehmen sie nicht auf, da es sich nicht um URL-Anforderungen handelt.
<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>
Keiner der oben genannten Punkte funktioniert beim Ersetzen der HTML-Zeichenfolge
<link href="/server///uat.site.co.jp/css/css.css
mit
<link href="/server///uat.site2uk.co.uk/css/css.css
Conf nach Änderungen:
<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
Tags bereitstellen können . Wenn Sie können, kann ich nicht sagen, dass es eine gute Idee wäre. Auf jeden Fall ist das nicht Ihre Frage. Gemäß den Apache- Dokumenten ist die substitute
Direktive nur innerhalb von Directory
Blöcken oder .htaccess
Dateien gültig . Versuchen Sie, einen <location>
Block zu erstellen (auch wenn er für / ist), und fügen Sie die Direktive dort ein.
a
Tag. Wenn Sie auf diesen Link klicken, folgt wahrscheinlich nicht der Webbrowser dem Link, sondern ein Dateibrowser (Windows Explorer), der versucht, den UNC zu öffnen. Versuchen Sie, diese Zeichenfolge in HTML-Text zu ersetzen?