Реклама на сайте Advertise with us

Rewrite rules/MultiViews в nginx

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 29.05.09
Сообщения: 466
Рейтинг: 231

Ссылка на сообщениеДобавлено: 30/11/09 в 13:48       Ответить с цитатойцитата 

Собственно обращаюсь за помощью потому как гугль конкретных ответов не дал.

Есть антилич, не самописный. Принцип действия: файлы для скачивания лежат в private/, в корне антлича есть download.php, идет обращение на http://www.host.com/files/download/projects/archive.rar (под апачем работал multiviews), затем пользователю отдается ссылка http://www.host.com/files/public/72jfbkjdshbn78nbakdnkjsa/projects/archive.rar, то есть в public/ формируется внутренний симлинк на файл.

Options -Indexes +MultiViews был прописан в files/.htaccess

Как это дело заставить работать под nginx?

Не завидуй, но добивайся сам. Расти, когда хочется умереть.

0
 



С нами с 09.10.07
Сообщения: 433
Рейтинг: 321

Ссылка на сообщениеДобавлено: 30/11/09 в 17:42       Ответить с цитатойцитата 

проверяешь скриптом права, и отправляешь ответ с "специальным" заголовком
X-Accel-Redirect: /private/archive.rar
и пустой строкой в самом ответе.

Ну или 403 если Forbidden

PS На location /private говоришь internal.

3
 



С нами с 29.05.09
Сообщения: 466
Рейтинг: 231

Ссылка на сообщениеДобавлено: 01/12/09 в 13:45       Ответить с цитатойцитата 

сиба. сделал. возник второй вопрос: когда пользователь пытается начать качать по ссылке http://www.host.com/files/public/72jfbkjdshbn78nbakdnkjsa/projects/archive.rar - то вываливается 404 ошибка, и причем эту ошибку кажет nginx. В конфиге я прописал:
Код:
location ~* ^.+\.(rar|zip)$ {
root /home/user/host.ru/html/fafiles/public/;
}

чтобы nginx отдавал сам файлы а не перекладывал это на плечи апача. Только почему-то такая конструкция не работает. Возможно ли это из-за того чтобы в /public/ лежит не сам файл а симлинк на него?

в созданной директории public/87928342376jsdnfb7823/ антилич создает еще такой .htaccess:
Код:
RewriteEngine   On
Options +FollowSymLinks
RewriteBase     /fafiles/0a9ed8fdac28244f1cfd51d2160d6a9b/
RewriteCond     %{HTTP_REFERER}    !^http://www\.host\.ru/fafiles/download/ [NC,OR]
RewriteCond     %{REMOTE_ADDR}     !^xx\.xx\.xx\.xx$
RewriteRule     .*                 - [F]

Не завидуй, но добивайся сам. Расти, когда хочется умереть.

0
 



С нами с 09.10.07
Сообщения: 433
Рейтинг: 321

Ссылка на сообщениеДобавлено: 01/12/09 в 19:43       Ответить с цитатойцитата 

Что-то сложное у тебя там и под апач заточеное.

Делай просто.
У тебя есть

Код:

location /private {
   root /path/to/files;  /* и помни что у тебя все файлы будут искаться как /path/to/files/private/... */
    internal;
}
location /public {
   proxy_pass http://127.0.0.1;
   /*  отправляешь в антилич скрипт в апач, или
       что там у тебя */
}


в скрипте проверяешь referer и сессию
(впрочем реферер можешь и в location public проверить)
Простых антиличей в рассылке nginx тоже было.

3
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »