Is there a way, in nginx, to allow access to a "location" only to clients with a referrer that matches the current location name?
This is the scenario:
http://foooooo.com/bar.org/
http://foooooo.com/zeta.net/
etc etc
I want the contents of the bar.org location available only if the referrer is bar.org. The same goes for zeta.net
I know I can do this "statically", but there are a lot of those locations and I need to find a way to do this defining only one "dynamic" location.
Sorry for my bad english.
SOLUTION
I've solved this way:
location ~/([a-zA-Z0-9\.\-]*)/* {
set $match "$1::$http_referer";
if ($match !~* ^(.+)::http[s]*://[www]*[.]*\1.*$ ) {
return 403;
}
}
location ~ ^/([a-zA-Z0-9\.\-]*)/(.*) {
if ($http_referer !~ "^$1.*$"){
return 403;
}
}
location /india/xxxxx.js {
if ($http_referer !~ "http://domain.xxx/"){
return 403;
}
}
I solved my problem using slight changes, Thanks
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With