Wie Bilder im HTML mit httpd.conf auf anderen Server umleiten?
Donald
- webserver
Hallo,
Ich habe in den auszuliefernden HTML-Seiten viele Bilder im Stil von
<img src="./STYLE/IMAGES/Screenshots/1.jpg">
stehen. Ich würde gerne, um die Leitung auf diesem Server zu schonen, die Bilder von einem anderen Server aus hosten. Dazu sollte in den Links überall der Teil "./STYLE/IMAGES/" verändert werden zu "http://images.dummy.de/IMAGES/". Ich möchte das aber flexibel haben ohne im Quelltext was zu ändern.
Den Apache hoste ich selbst, habe also vollen Zugriff auf die httpd.conf Datei. Mit mod_alias kann ich das ja nicht erreichen. Wie aber dann?
Grüsse,
Donald
Hi,
Ich würde gerne, um die Leitung auf diesem Server zu schonen, die Bilder von einem anderen Server aus hosten.
Bedenke, dass moderne Browser eine Option bieten, die Anzeige von Bildern von Fremddomains zu unterbinden.
Dazu sollte in den Links überall der Teil "./STYLE/IMAGES/" verändert werden zu "http://images.dummy.de/IMAGES/". Ich möchte das aber flexibel haben ohne im Quelltext was zu ändern.
Also willst du in den "Links" (du meinst an den URLs im src-Attribut der img-Elemente) *nichts* veraendern.
Den Apache hoste ich selbst, habe also vollen Zugriff auf die httpd.conf Datei. Mit mod_alias kann ich das ja nicht erreichen.
Wieso nicht? RedirectMatch existiert.
Wie aber dann?
mod_rewrite waere eine weitere Alternative (die aber im Vergleich zu RedirectMatch schon ueber's Ziel hinausgesch(ie|o)ssen sein koennte).
Und klar sollte sein, dass du in beiden Faellen nach wie vor deinen Server mit den originalen Anfragen "belastest" - bevor dieser sie woanders hin umdirigieren kann. Wenn du das vermeiden wolltest, muesstest du schon wirklich an die Verlinkung/Einbindung der Bilder rangehen.
MfG ChrisB
Hallo Chris,
Danke für deine Antwort. Natürlich meinte ich nicht die "Links" sondern die src-Verweise in img-Elementen. War etwas hektisch getippt...
Wieso nicht? RedirectMatch existiert.
In dem Fall wird aber nur die Anfrage nach dem Bild mit einem Redirect beantwortet, oder? Ich will vor allem viel Traffic sparen da ich nur an einer 2MBit Leitung hänge. Der Server muss hier laufen, aber die Bilder und Grafiken könnten woanderst liegen.
mod_rewrite waere eine weitere Alternative
Kommt mir zu komplex vor.
Ich stelle mir vor, dass jede Seite vor dem Ausliefern einmal mit einem Replace bearbeitet wird der alle "./STYLE/IMAGES/" Vorkommen durch "http://data.dummy.de/IMAGES/" ersetzt. Mehr ist nicht nötig. Gibts da was? Wenn es doch mod_rewrite sein muss, wie muss ich das dann konfigurieren? Ich hab danach gegoogled, aber da geht es immer um URL Geschichten und ich werd nicht Schlau daraus.
Denkst Du wirklich dass es viele Browser gibt die so konfiguriert sind dass Sie fremd-domain Bilder nicht laden?
Grüsse,
Donald
Hi,
Ich stelle mir vor, dass jede Seite vor dem Ausliefern einmal mit einem Replace bearbeitet wird der alle "./STYLE/IMAGES/" Vorkommen durch "http://data.dummy.de/IMAGES/" ersetzt. Mehr ist nicht nötig. Gibts da was?
Wenn du das willst, dann bemuehe eine serverseitige Scriptsprache einer Wahl.
MfG ChrisB
Hi ChrisB,
Wenn du das willst, dann bemuehe eine serverseitige Scriptsprache einer Wahl.
Nein [1], du willst die Ausgabe des Apache manipulieren, dies geschieht durch einen Filter. Idealerweise programmierst du dir dafür ein eigenes Apache-Modul, um optimale Performance zu erhalten, alternativ greifst du auf mod_ext_filter zurück, ein fertiges Apache-Modul, welches die Ausgabe von Apache bevor sie an den Client gesendet wird durch ein beliebiges Programm filtern kann. So ein Programm kann auch ein ausführbares PHP-Script unter Linux sein.
Viele Grüße,
~ Dennis.
[1] Man könnte sicherlich auch ein Script schreiben, allerdings müsste man dann noch mod_rewrite o.ä. benutzen, um erstmal alle Dateiaufrufe auf dieses Script umzuleiten. Ich denke mal, in diesem Fall ist es da einfacher einen externen Filter zu definieren, wenn man entsprechenden Zugriff auf die Serverkonfiguration hat.