# direkten Aufruf der Bilder auf html-Seite umleiten



## Brassa (19. September 2017)

Hallo zusammen,

ich versuche mal zu erklären, was ich gerne möchte und eventuell kommen hier ja andere Probleme mit hoch:

Wenn ein User einen Link irgendwo einbindet/postet, der direkt zu dem Bild geht welches er auf meiner Seite hochgeladen hat (also http://www.domain.de/uploads/bildname.jpg), soll dieses auf z.B. http://www.domain.de/bilder/bildname.html umgeleitet werden, wo dann das Bild mit dem Design meiner Seite angezeigt werden soll.

Dazu habe ich das hier, was soweit auch funktioniert:

```
RewriteRule ^upload/(.+)\.(gif|png|jpeg|jpg|bmp)$ bilder/$1.html [L,NC]
RewriteRule ^bilder/(.+)\.html$ bild.php?file=$1 [L,NC]
```

In der bild.php habe ich derzeit zum testen einfach nur einen <img>-Tag, jedoch wird das Bild nicht angezeigt.
Ich vermute hier muss noch meine eigene Seite mit in die htaccess, damit hier die Umleitung nicht erfolgt, oder? Wie müsste dies aussehen?

Danke schon mal

Grüße


----------



## FormFollowsFunction (20. September 2017)

https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=286&lngWId=8

Such mal nach "anti leech", da findet sich noch mehr.


----------



## sheel (20. September 2017)

Hi

das Hauptproblem ist, dass dein <img>-Tag auch umgeleitet wird, und im <img> von HTML eben keine HTML-Datei angezeigt werden kann... (die dann, falls es möglich wäre, wieder ein umgeleitetes img hat, und wieder...)

Eine wirklich gute Lösung gibts nicht.

Gegen das Umleitungsproblem von oben wäre zB. eine PHP-Datei hilfreich, die das Bild ausliest und mit passendem Mimetyp (header-Funktion), Cacheanweisungen, Rangebehandlung usw.usw. zurückschickt. ... wenns richtig gemacht wird, nicht ganz trivial. Außerdem gibts dann auch keine Direktlinks zu Bildern mehr, die die User von der Seite kopieren könnten. Und gegen Herumprobieren mit Dateinamen hilft htaccess.
Aber natürlich verhindert nichts, direkt die PHP-Datei (statt dem Bild) aufzurufen ... falls man das per Umleitung lösen will steht man wieder am Anfang. (Wo es helfen kann: Loginkontrollen usw. Aber nicht hier)

Andere Lösung, mit Links, und ohne PHP: Den HTTP-Referer prüfen (woher eine Url aufgerufen wurde, mitgesendet vom Browser). Bei Bildern auf deiner Seite sollte das eben deine Seite sein, und das kann man als Bedingung in die htaccess-Datei einbauen (nur umleiten wenn anderer Referrer). Probleme: Sehr leicht fälschbar, und je nach Browser/Einstellungen auch für "gute" Bildaufrufe nicht immer auf deine Seite gesetzt (also manche User sehen die Bilder dann gar nicht).

(Keine Ahnung, ob FormFollowsFunction's Link das Selbe sagt oder nicht, meine Sicherheitseinstellungen verhindern den Aufruf  TLS-Version zu alt)


----------



## guenter024 (4. Januar 2018)

Beachte:
In deinem Beispiellink schreibst du uploads und in der RewriteRule upload


----------

