Indica un tag <img> a un'image generata dynamicmente da PHP?

È ansible redirect un'image ad un'image generata dynamicmente (usando PHP)?

Ho un'image creata dynamicmente e ha un'estensione ".PHP" (ovviamente) e quel server non è sotto il mio controllo. Quindi voglio redirect "somename.jpg" (sul mio server) a "remoteserver / dynamicimage.php" (su alcuni server remoti non sotto il mio controllo) in modo che possa subito collegarlo come <img src="somename.jpg"/> e viene mostrata l'image generata dynamicmente.

Per favore fammi sapere se è ansible.

I browser seguono i reindirizzamenti per le immagini. Crea un file php chiamato "somename.jpg" e aggiungi:

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

Usa la direttiva ForceType di Apache in un file .htaccess per dire al server di elaborare il file .jpg come php:

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

Oppure chiama il file somename.php se non hai davvero bisogno dell'estensione .jpg.

Probabilmente potresti farlo usando anche mod_alias , anche se non l'ho provato:

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

Questo andrebbe anche in un file .htaccess.

La function header controlla l'intestazione HTTP, che è ciò che il browser usa per determinare il tipo di file (o dovrebbe, in each caso.) Può essere usato per dire al browser che lo script sta generando un file image da scaricare, piuttosto che Output di script HTML:

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

Prova ad aggiungere qualcosa come questo al tuo file .htaccess

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

È ansible ma comporterebbe un reindirizzamento HTTP:

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

Un'alternativa sarebbe utilizzare un proxy (vedere P flag ), in modo che il server richieda la risorsa remota e la restituisca al client.

Un altro modo molto più complicato ma incredibilmente potente sarebbe scrivere un codice di gestione che viene triggersto per questo URL di localizzazione dell'image locale.

Questo recupera i dati dall'URL esterno e restituisce i dati con il tipo MIME corretto.

Si scrive anche del codice per memorizzare questi dati in base a ciò che può essere fattibile.

In questo modo non darei mai la reale posizione dell'image e potresti persino utilizzare alcune credenziali segnetworking come logindata o cookie di terze parti che non dovrebbero apparire sul tuo sito.

Tutto ciò è molto più difficile da fare per configurare semplicemente un reindirizzamento nella configuration di apache. Abbiamo fatto cose del genere nei casi in cui l'url avrebbe perso informazioni private altrimenti.