Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите mod_rewrite
 
 автор: cernos   (01.09.2007 в 03:56)   письмо автору
 
 

Передо мной стоит задача сделать такое, как:

Есть директория в которой хранятся файлы:

/home/cernos/files/

есть директория сайта

/home/cernos/public_html/

На сайте есть директория downloads, т.е.

/home/cernos/public_html/downloads/

Вид обращения в адресной строке к директории downloads/
http://site.ru/downloads

в папке downloads нет не одного файла, кроме htaccess с помощью которого необходимо реализовать такое:

Когда обращаются и требуют файл с директории downloads, файл отдается с директории
/home/cernos/files/

Пример:
Посетитель запрашивает файл:
http://site.ru/downloads/video_file.rar

Отдается файл:
/home/cernos/files/video_file.rar


Но посетитель и все качалки видят, что файл отдается с http://site.ru/downloads/video_file.rar, а не с /home/cernos/files/video_file.rar


Я полагаю что такое реализовывается с помощью mod_rewrite в апаче, но не могу понять как.

Оч. срочно нужно, заранее спасибо.

   
 
 автор: vladimir_sumy   (01.09.2007 в 23:09)   письмо автору
 
   для: cernos   (01.09.2007 в 03:56)
 

Может использовать Алиас? Поищите Alias в httpd.conf. Там и описание есть.

   
 
 автор: cheops   (02.09.2007 в 11:32)   письмо автору
 
   для: cernos   (01.09.2007 в 03:56)
 

Т.е. у вас виртуальный хост привязан к /home/cernos/public_html/ и вам нужно обращаться к /home/cernos/files/ за пределы виртуального хоста? Вероятно придётся делать символическую ссылку, в противном случае вряд ли удасться вытащить что-то из-за пределов виртуального хоста.

   
 
 автор: cernos   (10.09.2007 в 23:55)   письмо автору
 
   для: cheops   (02.09.2007 в 11:32)
 

Все сделал, выкладываю прмиер в паблик:

Order Deny,Allow
Deny from all

<Files STYLAND.RU_demon_creative-1136665670_i_3789_full.rar>
  order allow,deny
  Allow from 127.0.0.1
</Files>

RewriteEngine On
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*)$ ../../uploads/files/demon_creative-1136665670_i_3789_full.rar [L,QSA]


Что здесь, для того чтобы все поняли, а особенно новчики:

Order Deny,Allow
Deny from all


Запрещает доступ ко всем файлам всем пользователям, после
открываем доступ только к одному файлу, указываем его имя, в данном случае это файл:
STYLAND.RU_demon_creative-1136665670_i_3789_full.rar, пример ниже:

<Files STYLAND.RU_demon_creative-1136665670_i_3789_full.rar>
  order allow,deny
  Allow from 127.0.0.1
</Files>


После этого, указываем локальную ссылку, на сам файл, место с откуда его забирать:

RewriteEngine On
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*)$ ../../uploads/files/demon_creative-1136665670_i_3789_full.rar [L,QSA]


Таким образом, можно сделать такое:
Я обращаюсь, для скачивывания файла по адресу link.site.ru/STYLAND.RU_demon_creative-1136665670_i_3789_full.rar

он мне отдает файл, находящейся по настоящему на две директрии ниже в других папках, для чего это делалось:
1.Делал сайт с распределением прав пользователей VIP и USER
2.VIP пользователи обращались к vip.***.ru/файл
3.User пользователи обращались user.***.ru/файл
4.Для поддомена user.***.ru устанавливаются ограничения с помощью доп-ных модулей апач, на скорость скачивывания и дневной трафик
5.для того чтобы не копировать файл, для каждого юзера в разные поддомены, была придумана эта идея

Вид получения файла выглядел так:
user.***.ru/iqwue8934uier/file.rar
где iqwue8934uier - директория с именем сессии, в этой директории и лежал заветный htaccess файл, который давал доступ только определенному ip адресу и на определнный файл доступ. Вот так все просто.

Если это все знают, то прошу прощения, но найдется кто нить вроде меня, которому это потребуется.

Надеюсь всем когда нибудь пригодится.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования