.htaccess И временные ссылки

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем qwertya, 7 авг 2009.

Статус темы:
Закрыта.
  1. qwertya

    qwertya Писатель

    Заблокирован
    Регистр.:
    2 июл 2009
    Сообщения:
    11
    Симпатии:
    0
    Допустим у меня есть файл cool.mp3

    Задача состоит в том что бы отдавать юзеру файл по временной ссылке.

    В пхп скрипте это делается через заголовок.
    но при этом браузер узверя каждую секунду опрашивает апача о состоянии ссылки, а тот в свою очередь обращается к пхп.

    Есть возможность создавать временные ссылки с помощью .htaccess?

    И можно ли с помощью него же ограничивать скорость отдачи файла?
     
  2. ZuArt

    ZuArt Создатель

    Регистр.:
    11 фев 2008
    Сообщения:
    16
    Симпатии:
    4
    Можно, но для такого расклада нужно учесть несколько моментов:
    - этот htaccess будет постоянно перезаписываться скриптом (когда выделется ссылка - внести директиву, когда время жизни ссылки вышло - убить директиву)
    - учесть инструмент фиксирования времени жизни ссылки + по крону собственно говоря проверять раз в 3-5-10 минут (зависит от критичности возможности ссылки жить чуть дольше положенного)
    Как вариант, могу предложить такой механизм:
    - пользователь выбрал там что-то, чтобы получить временную ссылку
    - скрипт читает файл htaccess (просто в переменную)
    - генерирует случайную строку (можно и просто и банально через md5(time()) и проверяет, чтобы для такой строки не было уже записи в файле, если есть, можно просто еще раз к строке md5 применить и снова проверить и так пока не получится уникальная строка, снять текущее время time(), добавить к нему время существования ссылки - получим время до которого ссылка живет
    - добавить в htaccess строчку вида RewriteRule ^tmplinks/временная-уникальная-строка/?$ реальный-явный-путь-к-файлу [L] #время-до-которого-ссылка-работает
    - выдать юзеру адрес ссылки вида: http://www.domain.ru/tmplinks/временная-уникальная-строка/
    Далее, создать скриптик, который по крону будет запускаться с нужной частотой и просто проверять, есть ли в htaccess директивы перенаправления, которые как бы должны "умереть"? перезаписывать htaccess без этой строки (это время после # в строках директив перенаправления).
    Лучше блок директив временных ссылок вообще выделить сверху и снизу "псевдотегами", чтобы этот блок можно было вставить туда, где нужно в файле, и потом не мучиться разбиранием и выделением нужных частей, что-то типа:
    Код:
    Основные директивы сайта
    #tmplinks
    ......
    Директивы временных ссылок
    ......
    #/tmplinks
    Основные директивы сайта
     
  3. qwertya

    qwertya Писатель

    Заблокирован
    Регистр.:
    2 июл 2009
    Сообщения:
    11
    Симпатии:
    0
    Я нечто подобное и думал...

    Спасибо!

    Как насчет ограничения скорости отдачи файла?
     
  4. ZuArt

    ZuArt Создатель

    Регистр.:
    11 фев 2008
    Сообщения:
    16
    Симпатии:
    4
    Нзчт =) Кстать, для спасибы кнопка есть еще ;) - не пиво, конечно, а душе приятно.

    А по поводу ограничения скорости через htaccess... если только убедить админа хостинга поставить mod_bandwidth + разрешить его директивы указывать в клиентском htaccess

    Вот тут можно глянуть (ссылка старая, но суть вопроса отражает).
    http://www.lissyara.su/?id=1135

    и еще тут немного.
    http://www.httpd.kiev.ua/modules/apache-1.3/mod_bandwidth/
     
    qwertya нравится это.
Статус темы:
Закрыта.