Вопрос по использованию редиректа в .htaccess в Apache

seoDemon

Новичок
Вопрос по использованию редиректа в .htaccess в Apache

Как средствами файла .htaccess организовать выдачу файлов, которые лежат выше корня сайта?
То есть сайт лежит в каталоге /path/to/site/www/ , а мои файлы в директории /path/to/site/files/
и когда посетитель обращается по адресу http://mysite.com/somedir/somefile.ext, то без редиректа ему просто выдаётся файл из папки /path/to/site/files/somedir/somefile.ext
Возможно ли такое?
 

seoDemon

Новичок
Mr_Max
вообще смысл организовать антилич, правда пока не до конца представляю как... т.е. надо отправлять юзера по ссылке вида http://mysite.com/a23b42bcb3264e34f23/somedir/somefile.ext
и в результате от должен получать файл /path/to/site/files/somedir/somefile.ext и конечно нужна проверка на доступность этой ссылки, т.к. она может действовать ограниченное кол-во времени
 

seoDemon

Новичок
Да прикольно там всё написано ) уже читал. Но там решения предполагают либо тонкую настройку сервера, либо установку дополнительных модулей, либо установку nginx, либо выдачу файлов средствами PHP. Но к сожалению у меня нет доступа ни к .httpconf, ни к php.ini и вообще права довольно ограничены. Есть .htaccess, mod_rewrite, PHP, mysql. Ну ещё некоторые команды шелла можно выполнять. А при отдаче файлов средствами PHP меня хостер попрёт из-за нагрузки на ЦП, да и это не стабильно и сложно в реализации, если делать с возможностью докачки.

Вот я и думаю как тут и рыбку съесть и нннн...ну в общем может быть можно как-то с символьными ссылками попробовать реализацию? Внешний скрипт создаёт директорию юзера типа /a23b42bcb3264e34f23/ и в момент запроса файла командой ln создаёт в этой дире ссылку на файл, который реально лежит выше корня сайта. Возможно ли такое?

-~{}~ 04.03.09 12:45:

В общем конечно же возможно. Набросал простецкий скрипт, который реализует некоторые функции антилича с помощью создания/удаления ссылок юниксовой командой ln. Совершенно простая в понимании и не ресурсоёмкая реализация надо сказать.
Ни разу не встречал подобной реализации, поэтому если идея новая, то дарю :)
Всё просто, поэтому не буду тут стелить простыню. Практически весь функционал реализован банальными функциями шелла:
PHP:
// создание папки в пользовательской директории с сохранением пути к файлу
exec('mkdir -p "ПУТЬ_К_ПОЛЬЗОВАТЕЛЬСКОЙ_ДИРЕКТОРИИ"');
// создание символьной ссылки на файл из хранилища
exec('ln -s "ПУТЬ_К_ФАЙЛУ_В_ХРАНИЛИЩЕ" "ПУТЬ_К_ФАЙЛУ_В_ПОЛЬЗОВАТЕЛЬСКОЙ_ДИРЕКТОРИИ"');
// удаление символьной ссылки при достижении какого-то лимита
exec('rm -f "ПУТЬ_К_ФАЙЛУ_В_ПОЛЬЗОВАТЕЛЬСКОЙ_ДИРЕКТОРИИ"');
Ну и конечно плюс каптчи, сессии и т.д.
 
Сверху