Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] apache : cacher l'adresse d'un fichier distant

2 réponses
Avatar
franssoa
Bonjour,
Un peu HS, mais je pose quand même ma question :-)

J'ai un serveur hébergé sur le web, disons www.monserveur.com
J'ai un serveur perso hébergé à la maison, accessible par
alamaison.dyndns.org:8080

Sur www.monserveur.com, je veux afficher une image provenant de
alamaison.dyndns.org sans que l'on puisse voir qu'elle vienne de là.

Si dans le .htaccess de www.monserveur.com je met :

RewriteEngine on
RewriteRule ^image.jpg$ alamaison.dyndns.org:8080/imagesource.jpg [L]

Quand je tape http://www.monserveur.com/image.jpg dans mon navigateur,
apache va tout naturellement charger imagesource.jpg du serveur perso,
mais la barre d'adresse va aussi changer en
http://alamaison.dyndns.org:8080/imagesource.jpg
Hors j'aimerais que cela reste affiché "http://www.monserveur.com/image.jpg"

Il y a-t-il une solution avec les règles de htaccess, ou dois-je faire
un petit script php qui charge l'image et la renvoie ?

franssoa

2 réponses

Avatar
Franssoa
Je m'autorépond.

Le 16/02/2013 17:02, franssoa a écrit :
Quand je tape http://www.monserveur.com/image.jpg dans mon navigateur,
apache va tout naturellement charger imagesource.jpg du serveur perso,
mais la barre d'adresse va aussi changer en
http://alamaison.dyndns.org:8080/imagesource.jpg
Hors j'aimerais que cela reste affiché "http://www.monserveur.com/image.jpg"





J'ai finalement utilisé un peu des deux :

.htaccess :
========== RewriteEngine on
RewriteRule ^image.jpg$ image.php [L]

image.php :
========== <?php
$i = "http://alamaison.dyndns.org:8080/imagesource.jpg";
$fp = fopen($i, 'rb');
header("Content-Type: Content-Type: image/jpeg");
header("Content-Length: " . filesize($i));
fpassthru($fp);
exit;
?>

franssoa
Avatar
Franssoa
Le 16/02/2013 22:26, Franssoa a écrit :> <?php
$i = "http://alamaison.dyndns.org:8080/imagesource.jpg";
$fp = fopen($i, 'rb');
header("Content-Type: Content-Type: image/jpeg");
header("Content-Length: " . filesize($i));
fpassthru($fp);
exit;
?>



Visiblement pas de taille récupérée avec un fichier distant, donc ne pas
mettre le content-length dans le header, ça ne passe pas avec tout les
navigateurs. Ou alors copier le fichier en local...


franssoa