|
|
|
| Здравствуйте!
Задача такая
есть картинка http://site1/files/images/12345.jpg
цель чтобы на сайте http://site2 эта картинка отображалась в коде в таком виде
<img src="/files/images/12345.jpg" />
для этого в файл .htaccess на сайте http://site2 я ставлю
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^files/(.*)$ http://site1/files/$1 [L]
Это все хорошо работает у меня на локале.
Но на сервере для отдачи статики (в том числе картинки) стоит веб-сервер nginx.
Вопрос
как переписать данный реврайт для nginx. | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(08.06.2010 в 10:05)
| | У меня такое чувство что про nginx вообще мало кто знает.
В интернете мало информации а техподдержка хостинга буквально ответила что не может помочь, так как не знает как.
Пока временно решил эту проблему очень грубым способом
в .htaccess
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^files/(.*)$ /files.php?path=$1 [L]
|
files.php
$path = $_GET['path'];
$content = file_get_contents('http://site1/files/'.$path);
echo $content;
|
но конечно хочется просто написать правильный реврат | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(08.06.2010 в 14:35)
| | Вот так
$path = $_GET['path'];
$content = file_get_contents('http://site1/files/'.$path);
echo $content;
|
вы отдаете файлы не через нгикс, а через апач. И толку от нгикса вам нет никакого.
Смысл тут в чем. Я напишу, как я поняла.
Есть у вас ссылка. Эта ссылка бросается на нгикс, который стоит перед Апачем. Так как нгикс не умеет работать с php, он перенаправляет эту ссылку Апачу. Апач отдает ссылку соответствующему php-скрипту. В скрипте надо послать заголовки, чтобы сделать редирект на нгикс(который и отдаст файл). У меня были такие заголовки:
header("Content-Type: ".$ctype);
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize("путь к файлу/".$filename));
header("Content-Disposition: attachment; filename=" . $filename);
header("X-Accel-Redirect: путь к файлу/" . $filename);
|
Последний из перечисленных заголовков и делает перенаправление на внутреннюю секцию нгикса, которая отдает скачивать файл. Секция эта должна быть прописана в конфигурации нгикса:
Например, у меня было так:
location /repository/linked/ {
root /home/work/www/;
internal;
flv;
}
файлы, которые скачиваются, расположены в /repository/linked/
Я делала подобное месяц назад где-то, но мне все, что связано с нгиксом, писал админ, я писала только скрипт, который формирует на xml ссылку и обработчик запросов нгикса.
Там где-то у автора нгикса - Сысоева, есть персональный сайт, на нем я читала про работу и директивы модуля нгикс. Вам в них надо смотреть. | |
|
|
|