Xwab
Форумыnavigate_nextСерверные технологии (Apache, nginx)

Вопрос по htaccess
Сообщения
crows

Добрый день.

Есть страница с описанием файла http://site/file234

234 - это id файла

Эти файлы хранятся в папке date.

Как с помощью htaccess сделать так, чтобы эти файлы можно было скачать лишь прийдя со страницы http://site/file234? А если не с этой страницы пришел, то редирект на http://site/file234.

Расширения файлов разные и нету никаких запретов.

10 Фев 2011, 13:50
Mediator21

Как вариант на странице site.ru/file234 в сессию писать номер 234, и выдачу файла сделать через скрипт. Ну а в скрипте сделать проверку верный ли номер записан в сессию. И в htассеss запретить прямое скачивание из папки dаtа (Deny from all)

10 Фев 2011, 14:13
crows

Mediator21, если просто делать проверку на сессию и использовать скрипт закачки, то я могу посмотреть в менеджере загрузок той же самой оперы прямой адрес откуда скачан файл. Скопировать его и юзать прямой адрес.

10 Фев 2011, 14:47
Mediator21

Я же написал выдавать файл через скрипт, а не напрямую. Тоесть скрипт не перенаправляет на файл, а выдает (печатает) его.

10 Фев 2011, 14:48
crows

Mediator21, приведи пжлст пример.

10 Фев 2011, 15:10
Mediator21

<?php
header('application/zip');
echo file_get_contents('data/file.zip');

10 Фев 2011, 15:20
crows

Mediator21, спасибо!
Ну а если расширения разные файла?

10 Фев 2011, 15:24
Mediator21

crows, собери базу миме-типе'ов и подставляй.

10 Фев 2011, 15:27
crows

Mediator21,  та ну... В директории разрешено сохранять файлы любого типа...

10 Фев 2011, 15:40
crows

Всё, нарисовал)
Спасибо за помощь!

...
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);

10 Фев 2011, 17:10
Ответить на тему