Search code examples
.htaccessmod-rewritehotlinking

Allow/deny image hotlinking with .htaccess


So I've got this in my site .htaccess file to prevent hotlinking of images, JS and CSS from all other domains.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]

Question: How would I selectively allow one or two domains to hotlink?


Solution

  • RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?otherdomain\.com [NC]
    RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
    

    Will work, as this says.

    "Refererr is not nothing, and referer is not matching mydomain and referer is not matching otherdomain.

    If it were the case that you were trying to do the opposite (blacklist a set of domains from hotlinking) you'd do something like

    RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain1\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain2\.com [NC]
    RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]