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」請求標頭欄位值,該值將導致嵌入的 $invalid_referer 變數設為空字串。否則,該變數將被設定為“1”。搜尋匹配項不區分大小寫。

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

你也可以這樣做

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

相關內容