0

次のようにカスタム変数を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;
    }

このようにして、「/adm/306/89/protectedfile.zip」である $_GET['file_name'] など、いくつかの変数を正常に戻すことができます。
「o」変数を除く。PHP スクリプトで $_GET['o] を取り戻すために多くのことを試みましたが、成功しませんでした。それは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;
}

ご提案いただきありがとうございます。

4

1 に答える 1

0

私は多かれ少なかれそれを解決しました

$request_uri
于 2013-06-24T20:18:45.990 に答える