
핫링크된 경우 원시 파일을 제공하고 싶지만 누군가 브라우저에서 파일을 방문하는 경우 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
로부터선적 서류 비치:
포함된 $invalid_referer 변수가 빈 문자열로 설정되도록 하는 "Referer" 요청 헤더 필드 값을 지정합니다. 그렇지 않으면 변수가 "1"로 설정됩니다. 일치 항목 검색은 대소문자를 구분하지 않습니다.
if($invalid_referer = ""){
return 403; #allow hot-linking only;
}
너도 할 수 있었어
if($invalid_referer != "1"){
return 403; #allow hot-linking only;
}