Wednesday

URL Masking (cloaking)

So you may have come across the term of cloaking URLs, this usually sounds evil and bad, like cloaked pages, which is something entirely different. Cloaking pages is presenting pages based on certain conditions, usually presenting a specific page to Google, for example. Doing this will get you banned and removed from Google's index. Not good. Cloaking URLs is a slightly different concept. It's showing a URL that usually points to something in your own domain. Once you click on the link you'll be redirected to the 'real' destination URL.

For example a CJ link for eBay would look like this:
http://rover.ebay.com/rover/1/711-1751-2978-328/1?aid=10366506&pid=123456

But to cloak it you would make it look like this:
http://www.money-code.com/ebay

For this example we'll use Apache's module called mod_rewrite. Almost all installs of Apache have this installed, but some may not, so you'll need to verify this. Also, this will need to be managed via a .htaccess file. This is another option that might not be available for you. Sometimes, some hosts will not give you the ability to manage mod_rewrite directives within .htaccess, so you'll need to check here as well.

Simply create a file called .htaccess in the root of your site. Next we need to add our rewrite rule and action. Rewrite uses regular expressions, so you can get pretty tricky if you want, this example will be as simple as it can get.

RewriteEngine on
RewriteRule ebay$ http://www.ebay.com [QSA,L]

Basically, we're turned on the 'engine'. Our rule is ebay$ which means after the site name (www.money-code.com/) it'll look for ebay and has to end at ebay. Meaning if we did this: http://www.money-code.com/ebay/ it won't work... only http://www.money-code.com/ebay

Another directive you may need depending on your set up is RewriteBase, this primarily is used if you have your applicaiton in a subdirectory to start with, etc.

If you're not familiar with regular expressions, you should stop now and buy this book (Mastering Regular Expressions). RegEx will come in handy in the future! I basically can't go a day without using some form of RegEx.

The second part of the line is a redirect destination. There are some flags at the end [QSA,L] which is [Q]uery [S]tring [A]ppend, [L]ast. We want to append any querystring data, and we want to close with this being the last rule.

Now, we're not done. We need to do a few other things. Our anchor link will need the following attribute

rel="nofollow"

This tells the robots that items at the end of this destination is not relevant to the site and to not follow. Unfortunately, spiders will still follow this, but we have one more simple technique. We drop a robots.txt file in the root and add the following:

User-agent: *
Disallow: /ebay

Now, 'good' robots will pay attention to that and not follow the link.

Another option is to use PHP. You could create a link to point to the following:
http://www.money-code.com/ebay.php

ebay.php would contain the following code:

header("Location:http://rover.ebay.com/rover/1/711-1751-2978-328/1?aid=10366506&pid=123456");
exit();
?>

This accomplishes the same thing, but at the code level vs. server directive.

No comments:

GraphQL with Graph Database

Graph theory is a branch of mathematics that studies graphs, which are mathematical structures that model relationships between objects. A g...