7

We only want users from a specific website to use our services. Is there a way to redirect all traffic that does not come from a specific referrer, to a website of our choosing, via htaccess?

Also, this is for the first page only. So if they get to our site, they're going to browse a new page, and their referrer for the new page would apparently be the site they are already on.

Thank you!

user1446650
  • 1,197
  • 6
  • 15
  • 24

2 Answers2

17

Try adding this in the htaccess file in your document root:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://the-ok-domain.com [NC]
RewriteRule ^/?first-page.html$ http://the-website-of-your-choosing.com/ [L,R]

You could also make it so you add your own domain to the referer check:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://the-ok-domain.com [NC]
RewriteCond %{HTTP_REFERER} !^http://your-domain.com [NC]
RewriteRule ^ http://the-website-of-your-choosing.com/ [L,R]

Then you can include all of your pages in the check.

Note that referers can be easily forged and any htaccess file using mod_rewrite in any of your subdirectories will supercede these rules (unless those htaccess files have the RewriteOptions inheret option set)

Jon Lin
  • 142,182
  • 29
  • 220
  • 220
  • That worked perfectly, thanks SO much for sharing this, Jon! Is there a way so that no-referrer (direct, type ins) can also access the site? – user1446650 Oct 28 '12 at 04:30
  • @user1446650 You should click on the green check-mark so that your question is marked as answered. – Jon Lin Oct 28 '12 at 04:37
  • one of my site is redirected to another like this http://cccc-xyz.ch is redirected to http:://abc.ch now want http://cccc-xyz.ch should redirected to http:://abc.ch/somepage-ccc by writing htacsess in http://abc.ch – Haris Mar 26 '14 at 07:02
4

Didn't work for me, I've made this small change to redirect traffic from google:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)\.google\.(.*) [NC]
RewriteRule ^(.*)$ https://www.my-site.it/$1 [L,R]
Pons
  • 1,747
  • 1
  • 13
  • 19