Скрыть адрес для скачивания файла

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2015

Нужно как-то скрыть адрес скачивания. Например, не хочу, чтобы пользователь видел ссылку

http://files.static.domain-ext.com/path/to/file.zip

а получал что-то очень лаконичное, вроде

http://domain.com/fddfdsa

т.е. файлы хранятся на одном сервере, а отдаются на другом.

Есть идея сделать редирект в htaccess без смены адреса, но не получится ли, что я этот файл буду прогонять через свой сервер, засоряя трафик? Не знаю, как это проверить. И отдавать через PHP тоже не вариант, т.к. будут файлы, которые весят ~500мб.

Список файлов будет заранее известен и не очень велик (<1000).

Может, у кого другие советы будут?

Ответы

▲ 1

http://controlcash.ru/b.html

На этом сервере .htaccess:

RewriteEngine on
RewriteRule ^ff(.*)$ http://test.controlcash.ru/getf.php?f=$0 [L,R]

Если у вас CDN для отдачи файлов, то можно принять соглашение о формировании ссылок:

ffddss = ff(префикс для начала работы RewriteRule) + dd(указатель на конкретный сервер) + ss(суффикс для формирования полного указателя на файл)

На сервере test.controlcash.ru (другая машина) содержимое getf.php:

$f = $_GET["f"];
$file_list = array(
    "ffddsda"=>"./var/upload/unzip_6.0-8_amd64.deb",
    "ffddsdb"=>"./var/upload/make_3.81-8.2_amd64.deb",
    "ffddsdc"=>"./var/upload/rsync_3.0.9-4_amd64.deb",
);
header("Location: ".$file_list[$f]);

Массив используется как пример. Конечно же можно использовать поиск файла в БД.