Frage

Ist es möglich, ein Bild zu einem dynamisch generierte Bild (mit PHP) zu umleiten?

Ich habe ein dynamisch erzeugte Bild, und es hat eine Erweiterung „.php“ (natürlich) und der Server ist nicht unter meiner Kontrolle. Deshalb mag ich „somename.jpg“ (auf meinem Server) umgeleitet werden so zu „Entfernter_Server / dynamicimage.php“ (auf einem entfernten Server nicht unter meiner Kontrolle), dass ich sofort als <img src="somename.jpg"/> verknüpfen und das dynamisch erzeugte Bild wird gezeigt .

Bitte lassen Sie mich wissen, ob dies möglich ist.

War es hilfreich?

Lösung

Browser folgt Umleitungen für Bilder. Erstellen Sie eine PHP-Datei mit dem Namen "somename.jpg" und fügen Sie:

<?php
header('Location: http://www.otherserver.com/image.php');

Mit der Apache Direktive Forcetype in einer .htaccess Datei auf dem Server zu sagen, die JPG-Datei als pHP zu verarbeiten:

<Files somename.jpg>
    ForceType application/x-httpd-php
</Files>

Oder einfach die Datei somename.php anrufen, wenn Sie wirklich nicht über die Erweiterung .jpg benötigen.

Sie könnten wahrscheinlich erreichen dies mit mod_alias sowie , obwohl ich es nicht versucht haben:

Redirect somename.jpg http://www.otherserver.com/image.php

Das als auch in einer .htaccess-Datei gehen.

Andere Tipps

Die Header-Funktion steuert die HTTP-Header, das ist, was der Browser des Dateityp (oder sollte in jedem Fall.) Zu bestimmen, verwendet Es kann verwendet werden, um den Browser zu sagen, dass das Skript eine Bilddatei erzeugt werden heruntergeladen , anstatt HTML-Skript-Ausgabe:

header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="somename.jpg"');

Versuchen Sie so etwas wie dies in der .htaccess-Datei hinzufügen

RewriteEngine on
RewriteRule ^(.*)\.jpg$ /scripts/$1.php

Es ist möglich, aber in einer HTTP-Umleitung führen würde:

RewriteEngine on
RewriteRule ^somename\.jpg$ http://remoteserver/dynamicimage.php [L]

Eine Alternative wäre ein verwenden Proxy (siehe < a href = "http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule" rel = "nofollow noreferrer"> P Flagge ), so dass der Server fordert die Remote-Ressource und übergibt es an den Client zurück.

Eine weitere viel komplizierter, aber unglaublich leistungsfähige Art und Weise wäre, einen Handler-Code zu schreiben, die für diese lokale Bildposition url aktiviert werden.

Dies würde man die Daten aus der fremden URL holt und gibt die Daten mit dem richtigen MIME-Typ.

Eines, das man auch einige Code schreiben, um diese Daten cachen Stationierung auf, was möglich sein kann.

Auf diese Weise würde man nie die wirkliche Lage des Bildes weggeben und man kann sogar einige geheimen Berechtigungsnachweise wie Logindaten oder Cookies von Drittanbietern verwenden, das nicht auf Ihrer Website angezeigt werden soll.

All dies ist viel schwieriger zu tun, dann einfach eine Umleitung in der Apache-Konfiguration zu konfigurieren. Wir haben Sachen wie diese in Fällen, in denen die URL der sonst private Informationen auslaufen würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top