我正在向 nginx 发送自定义变量,如下所示:
http://myserver2.com/adm/306/89/protectedfile.zip?h=4JljxlK530mM6CPbG5wdTQ&e=1372125364&o=279
变量“h”和“e”用于secure_link mod,“o”是我添加的,是我想在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['file_name'] 是“/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;
}
谢谢你的建议。