Я посылаю пользовательские переменные Nginx, как это:отправить переменную Nginx и принять его обратно
http://myserver2.com/adm/306/89/protectedfile.zip?h=4JljxlK530mM6CPbG5wdTQ&e=1372125364&o=279
переменные «ч» и «Е» для secure_link мод, «о» была добавлена по мне и тот, который я хочу вернуть в post_action. Смотрите мои директивы:
location /adm/ {
secure_link $arg_h,$arg_e;
secure_link_md5 SECRETKEY$uri$arg_e$remote_addr;
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 403;
}
rewrite ^/adm/(.*)$ /download/$1 break;
post_action /has_finished_downloading/$1;
}
location /has_finished_downloading/ {
resolver 8.8.8.8;
proxy_pass http://mymainserver.com/download_complete.php?ip=$remote_addr&body_bytes_sent=$body_bytes_sent&status=$request_completion&file_name=$1;
}
Таким образом, я могу вернуть некоторые переменные успешно, в том числе, например, $ _GET [ «имя_файла»], который является «/adm/306/89/protectedfile.zip».
За исключением переменной «o». Я пробовал много вещей, чтобы вернуть $ _GET ['o] без успеха в моем php-скрипте. Он не отправляется nginx, и у меня нет идей, как это сделать правильно.
Я также попытался это, но он выходит из строя (добавление $ arg_o):
location /has_finished_downloading/ {
resolver 8.8.8.8;
proxy_pass http://mymainserver.com/download_complete.php?ip=$remote_addr&body_bytes_sent=$body_bytes_sent&status=$request_completion&file_name=$1&myo=$arg_o;
}
Спасибо за ваши предложения.