Более надежный (хотя и более запутанный) способ сделать это - сгенерировать случайный хеш для присоединения к этой конкретной загрузке файла - но это сработает, только если на исходной странице также включен php (не только статический) HTML).
Если вы хотите сделать это таким образом, вы можете сделать что-то вроде этого:
<?
// index.php or wherever you want to detect the source from
session_start();
$uniqid = uniqid();
$_SESSION["image_caller_$uniqid"] = $_SERVER['SCRIPT_FILENAME'];
echo "<img src='image.php?uniqid=$uniqid' />";
?>
А потом в вашем файле изображения
<?
// image.php
session_start();
$source = $_SESSION["image_caller_{$_GET['uniqid']}"];
unset($_SESSION["image_caller_{$_GET['uniqid']}"]); // Don't needlessly waste memory
// Render the image or whatever you want here
?>
Это имеет тот же эффект, что и другие предложения делать что-то вроде <img src='image.php?ref=index.html'>
, однако подделать его гораздо сложнее.