htaccess de gelen requestleri index.php?file={X} karşılayacak şekilde planlarsınız. index.php'de de gelen referrer isteğinden domain kontrolü yapıp file ı açtırabilirsiniz.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]
<?php
// Referrer kontrolü
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$allowed_referrer = 'deneme.com';

// İsteği al
$request = isset($_GET['request']) ? $_GET['request'] : '';

if (strpos($referrer, $allowed_referrer) !== false) {
    // Eğer referrer deneme.com ise dosyayı aç
    $file_path = __DIR__ . '/' . $request;

    if (file_exists($file_path)) {
        // Dosyanın uzantısını al
        $file_extension = strtolower(pathinfo($file_path, PATHINFO_EXTENSION));

        // Content-Type başlıkları, dosya uzantısına göre ayarlanıyor
        switch ($file_extension) {
            case 'jpg':
            case 'jpeg':
                header('Content-Type: image/jpeg');
                break;
            case 'png':
                header('Content-Type: image/png');
                break;
            case 'gif':
                header('Content-Type: image/gif');
                break;
            case 'pdf':
                header('Content-Type: application/pdf');
                break;
            case 'txt':
                header('Content-Type: text/plain');
                break;
            case 'html':
                header('Content-Type: text/html');
                break;
            default:
                header('Content-Type: application/octet-stream'); // Bilinmeyen dosyalar için varsayılan
                header('Content-Disposition: attachment; filename="' . basename($file_path) . '"');
                break;
        }

        // Dosyanın boyutunu ve indirme hızını ayarlamak için içerik boyutu
        header('Content-Length: ' . filesize($file_path));

        // Dosya içeriğini okutup tarayıcıya gönderiyoruz
        readfile($file_path);
        exit;
    } else {
        // Dosya yoksa hata mesajı göster
        echo "İstenen dosya bulunamadı.";
    }
} else {
    // Referrer kontrolü başarısız
    echo "Yetkisiz istek. Sadece deneme.com üzerinden erişim izni var.";
}
?>