
我想在熱鏈接時提供原始文件,但如果有人在瀏覽器中訪問該文件,則重寫 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;
}