NGINXで利用可能な変数

NGINXで利用可能な変数

ホットリンクされている場合は生のファイルを提供したいのですが、誰かがブラウザでファイルにアクセスしている場合は URL を書き換えます。

私はこのホットリンクの例を何度か見てきました:

location /pictures/ {
   valid_referers none blocked mywebsite.com *.mywebsite.com;
   if ($invalid_referer) {
      return   403;
  }
}

しかし、有効なリファラーを参照するにはどうすればよいでしょうか? 別のページからリンクされている場合 (ホットリンク)、要求された生のファイルを提供しようとしています。

誰かがブラウザでそのファイルを表示している場合、HTML を追加(つまり、別の URL に書き換える)する必要があります。

以外にどのような変数が利用できますか$invalid_referer?

私はもう試した:

if( !$invalid_referer){
    return 403; #allow hot-linking only;
}

また、ドキュメントには他の利用可能な変数についての言及はありません。http://nginx.org/en/docs/http/ngx_http_referer_module.html

答え1

の値を確認することができます$無効なリファラー

からドキュメンテーション:

埋め込まれた $invalid_referer 変数を空の文字列に設定する「Referer」リクエスト ヘッダー フィールド値を指定します。それ以外の場合、変数は「1」に設定されます。一致の検索では大文字と小文字は区別されません。

if($invalid_referer = ""){
    return 403; #allow hot-linking only;
}

あなたもそうすることができます

if($invalid_referer != "1"){
    return 403; #allow hot-linking only;
}

関連情報