phpBB - Photo Album Addon | Bilder auf externem Server

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

phpBB - Photo Album Addon | Bilder auf externem Server

Beitragvon Schommel » 09.04.2006 14:57

Hallo :)

Folgendes Exempel: Ich besitzte Webspace auf welchem ein phpBB läuft mit dem beschriebenen Album Mod. Nun möchte ich bestimmte Photoalben jedoch nicht auf den selben Server hochladen müssen, sondern diese auf einem externen Server ablegen. Hierzu habe ich mir gedacht trage ich einfach in die SQL-Datenbank bei phpBB_album neue Einträge ein mit den entsprechenden Links zu den externen Dateien (http://www.server2.de/Bilder/0001.jpg o.ä.). Leider funktioniert dies scheinbar nicht aufgrund der Ausleseroutine des PHP-Scripts. So kam ich auf die Idee das Problem mit mod_rewrite zu lösen. Leider funktioniert auch dies nicht.. das PHP-Script kann auf die Bilder nicht zugreifen, warum auch immer. Gebe ich die zuständige URL im Browser ein, so funktioniert jedoch alles tadellos. Es ist aber anzumerken, dass im Browser dann die URL des externen Bildes und nicht die virtuelle URL angezeigt wird. Das könnte evtl. zur Verwirrung des PHP-Scripts führen, doch weiß ich nicht wie ich das Problem umgehen kann.


Meine .htaccess befindet sich in dem anzusteuernden Ordner (/phpBB/album_mod/upload/xyz/) und sieht wie folgt aus:

Code: Alles auswählen
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} /([0-9]+).jpg
RewriteRule (.+) http://www.server2.de/Bilder/xyz_%1.jpg [L]


Lege ich jedoch eine echte Datei 0001.jpg in /phpBB/album_mod/upload/xyz/ , so kann das PHP-Script das Bild tatsächlich auslesen, der Browser hingegen liest das weitergeleitete Bild auf Server2 aus.

Hat jemand eine Idee, wie ich das PHP-Script dazu bekomme auch auf das weitergeleitete Bild zuzugreifen?

Vielen Dank im Vorraus

PS: Auf die Idee das PHP-Script in einem bestimmten Bereich (album_pic.php?id=[4;250]) zu verlinken bin ich auch schon gekommen, doch das muss doch schöner zu lösen sein, oder?
Schommel
.
.
 
Beiträge: 8
Registriert: 25.12.2004 21:28
Wohnort: Aachen

Beitragvon Bob » 10.04.2006 13:31

Die Regel ist unnötig kompliziert. Die RegEx der RewriteRule wird vor der Condition geprüft, es macht also Sinn dort die Einschränkung anhand des filepaths vorzunehmen.

Code: Alles auswählen
RewriteEngine On
RewriteRule ^([0-9]+)\.jpg$ http://www.server2.de/Bilder/xyz_$1.jpg [L]


Hat jemand eine Idee, wie ich das PHP-Script dazu bekomme auch auf das weitergeleitete Bild zuzugreifen?
Dein Script müsste über das HTTP-Protokoll auf die Datei zugreifen, also einen externen Request starten, um über die RewriteRule zu gehen. Eine lokale Operation im Dateisystem kann natürlich nur lokal die Dateien dort öffnen und hat nichts mit dem Apache/RewriteRules zu tun.

Da du hier einen implizierten redirect sendest, müsste dein Script so du denn die Datei jetzt über das HTTP-Protokoll öffnest natürlich auch mit dem Redirect klar kommen.
Solche Vorgehensweisen verursachen natürluich dann auch Traffic und verlangsamen alles enorm, je nach dem wie viele externe requests nun das Script starten muss. Wenn dein script die Dateien benötigt (und sie eben nicht nur per <img> eingebunden werden) halte ich eine Trennung von Dateien und Script für keine gute Wahl... Das macht nur Sinn, wenn eben kein Script auf das Bild zwecks Bearbeitung/Thumbnailgenerierung zugreifen muss - sondern nur der Browser.
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron