}
location ~* ^.+\.(.*)$ {
set $t 0;
if ($http_x_accel_redirect){
set $t 1;
}
if ($t != 1){
rewrite ^(.*)\.(gz)$ /down.php?path=$1.$2 last;
}
root /home/$domen/$root/www/$sub;
index index.html index.htm;
}
В скрипте down.php пока что просто
<?php
$path = $_GET["path"];
header("X-Accel-Redirect:".$path);
?>
Может невнимательно читал, но по идее.
Пришел запрос на файл с расширением gz;
Хедера $http_x_accel_redirect еще не установлено, поэтому
переменную $t не устанавливаем в 1;
Если $t не установлена в 1, то делаем реврайт на down.php;
Из down.php запрос возвращается на тот же ури, но уже с установленным
$http_x_accel_redirect и посему реврайта не должно быть, а просто
выдаться файл.
Вопрос: Допускается ли такая конструкция if ($http_x_accel_redirect) и
что вернет при установленном и не установленном хедере?
И как отрицание в первом ифе сделать чтобы с переменной не танцевать?
По дебаг-логу видно что первый раз проходит по схеме.
После скрипта уже идет с