Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirect using htaccess based on referrer

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!

like image 933
user1446650 Avatar asked Oct 28 '12 04:10

user1446650


2 Answers

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)

like image 57
Jon Lin Avatar answered Nov 15 '22 21:11

Jon Lin


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]
like image 34
Pons Avatar answered Nov 15 '22 22:11

Pons