0

The problems I'm facing is how to prevent hotlinking from within a website. What I want to do is to block www.website.com/user/xxx from hotlinking a CSS, but allow www.website.com/user/aaa to use the CSS using .htaccess.

-Both user xxx and user aaa is using www.mywebsite.com/css.css css file, I only want to allow user aaa to be able to use it and not user xxx

What I manage to come up with so far is is putting a .htaccess in www.mywebsite.com to only allow user aaa to hotlink the css.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.website.com/user/aaa) [NC]
RewriteRule \.(css|jpg|jpeg|png|gif)$ http://website.com/donotsteal [NC,R]

When I put this into the .htaccess it blocks both www.website.com/user/xxx and www.website.com/user/aaa from hotlinking the css

What I want to do is allow only this page www.website.com/user/aaa to use the css and block anything else from hotlinking it.

John Smith
  • 29
  • 2
  • You have opening bracket in your 2nd RewriteCond but no closing one -- is that a typo or what? Does it work if it will be removed? – LazyOne Jul 04 '11 at 23:49
  • Wow I can't believe I overlooked that, yes you're right I didn't close it. I just closed it and it seems that it now allows the .css to be hotlink on both (user xxx and user aaa) sadly. – John Smith Jul 04 '11 at 23:56
  • You better turn rewrite debug ON and check what data is passed in `%{HTTP_REFERER}` -- maybe it is completely different URL. – LazyOne Jul 04 '11 at 23:59
  • Woops I misread your post. Yes I ended up having a pointless ( in there. I just removed it and every works fine now. Thanks for your advice haha. – John Smith Jul 05 '11 at 00:03

1 Answers1

1

According to the above comments there were mismatched parenthesis in the rule. Fixing syntax apparently worked and now the rewrite rule works as expected.

Chris S
  • 77,337
  • 11
  • 120
  • 212