2013-06-24 2 views
0

Я посылаю пользовательские переменные 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; 
} 

Спасибо за ваши предложения.

ответ

0

я более или менее решить его с

$request_uri