Hi, I’m having some trouble getting hotlinking protection working with
nginx
and xenforo forum software.
Currently I have;
server {
listen 80;
…
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ \.php$ {
....
}
location ~* ([0-9a-zA-Z])+-(png|jpg|jpeg|gif)[.]([0-9]+)/$ {
valid_referers server_names blocked *.mydomain.com;
if ($invalid_referer) {
rewrite ^(.*)$ url/to/leech.gif break;
}
}
}
This will 404 image attachments, as the developers put it;
“Nginx only matches one location block per request “attempt” (try_files
retries the attempt with the new URL). So basically, the try_files block
isn’t being hit after your referrer block… block. I don’t know what
the
best practice is here unfortunately”.
domain.com/attachments/someimage-jpg.3/
404’s with the error;
…/attachments/someimage-jpg.3/index.html" is not found (2: No such
file or
directory), client: xxx.xxx.x.xx, server: domain.com, request: “GET
/attachments/someimage-jpg.3/ HTTP/1.1”, host: “domain.com”, referrer:
“http://domain.com/threads/thread.1/”
It’s adding /index.html in the backend processing. Any ideas how I can
get
this to work?
Posted at Nginx Forum: