i have a question here:
i have a download website, and i prohibited hotlinking by using the
valid_referer parameter:
location ~*
^.+.(jpg|jpeg|gif|css|png|js|ico|flv|txt|zip|mp3|rar|w3x)$ {
if ($invalid_referer)
{
#return 403;
rewrite / http://www.mysite.com/;
}
root /home/account/public_html;
expires 30d;
}
the problem is that if the extension is changed, for example JPG or JpG,
the location regex does not work. it’s case sensitive.
would this work ?
location ~* ^.+.(*)$ {
instead of
location ~*
^.+.(jpg|jpeg|gif|css|png|js|ico|flv|txt|zip|mp3|rar|w3x)$ {
so that all files are protected against hotlinking?
On Tuesday 29 April 2008, Stefanita Rares Dumitrescu wrote:
the problem is that if the extension is changed, for example JPG or JpG,
the location regex does not work. it’s case sensitive.
it should work, but isn’t 100% correct.
backslash before second dot is missing.
do you have any other locations before this one?
Roxis wrote:
expires 30d;
do you have any other locations before this one?
Yes, this is the full location directive.
location / {
root /home/account/public_html;
index index.html index.htm index.php;
}
location ~*
^.+.(jpg|jpeg|gif|css|png|js|ico|flv|txt|zip|mp3|rar|w3x)$ {
if ($invalid_referer)
{
#return 403;
rewrite / http://www.domain.com/;
}
root /home/account/public_html;
expires 30d;
}