1

I use nginx and I have no access to server conf.

May be with .htaccess analogue?..

5 Answers 5

3

Without access to the server configuration, you cannot change any settings. There is no equivalent to Apache httpd's .htaccess in nginx.

2
  • -1 Downvoting. This answer does not match the question title.
    – unixman83
    Mar 29, 2012 at 5:48
  • @unixman83 how is this not relative to the question? besides, you're bringing a question that's 4 years old - things usually change for that amount of time.
    – tftd
    Dec 12, 2013 at 0:01
7
location ~* (\.jpg|\.png|\.gif|\.jpeg)$ {
 valid_referers blocked www.domain.com domain.com;
 if ($invalid_referer) {
    return 403;
 }
  root   /srv/www/domain.com/public_html;
}
4
  • is that for the nginx config file?
    – blndcat
    Feb 26, 2010 at 2:22
  • Yep, ask your server administrator.
    – user29686
    Feb 27, 2010 at 14:18
  • it should be 'not blocked' in the second line.
    – alfish
    Nov 18, 2011 at 18:03
  • @alfish Are you sure? Wouldn't setting not blocked disable the script, allowing all referrers through?
    – unixman83
    Mar 26, 2012 at 0:00
2

Just in case you HAVE access to the webserver:

location ~* (\.jpg|\.png|\.gif|\.jpeg|\.png)$ {
 valid_referers none blocked www.example.com example.com;
 if ($invalid_referer) {
    return 403;
 }
}
4
  • How is this really different from Gionn's answer from 1.5 years ago?
    – Chris S
    Nov 18, 2011 at 18:13
  • How is none different from blocked? What is it's purpose of being added? i.e. How is a no referrer different from a blocked referrer?
    – unixman83
    Mar 29, 2012 at 5:49
  • 1
    In the valid_referers directive, blocked allows referrers that have been blocked by a firewall, none allows requests with no referrer. From docs "none means the absence of "Referer" header. blocked means masked Referer header by firewall, for example, "Referer: XXXXXXX". Apr 24, 2012 at 19:41
  • some browsers do not send a referrer header, so none is required to allow those. apparently Firefox releases have been in this group Apr 24, 2012 at 19:49
0

joschi is right: nginx is driven by a single configuration file you can't edit. Your only possibility is to use a redirector script which says '403 Access Denied' for hotlinks and '301 Moved Permanently' for normal links.

0

One solution is to generate all your pages & content dynamically, and with different URLs every time, which expire after a while. That makes hotlinking impossible.

If that is not practical, you can also check referrer. If you cannot reconfigure nginx, you'll probably have to do it in a scripting language which generates the pages dynamically.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .