educational

Real World Redirection

In a recent board discussion about 2257 compliance issues for overseas producers, I posted a sample of geo-redirect code that has appeared in various forms during discussions here at XBiz. The purpose of the code, implemented as part of a website's .htaccess file, is to redirect incoming website traffic to an alternate destination based upon its country of origin.

The context of 2257 in this discussion is that overseas producers and website owners who do not wish to comply with the enhanced 2257 regulations can easily block their website's availability to the US market by using a few lines of server-side coding. This is one example of the power of geo-redirects – a power which I'd like to take a closer look at today:

Separating Wheat from Chaff
Consider the flow of traffic from the Internet into your website: Depending upon your traffic sources, the percentages of the different types and origins of surfers will vary; such as US surfers coming from search engines or Bulgarians from a TGP. Inevitably, varying amounts of, to be blunt, "undesirable" surfers – and entities such as hitbots and other digital nasties – will hit your homepage.

These "undesirables" include surfers coming from countries where your products or services are illegal and surfers coming from countries with historically excessive levels of fraud, including chargebacks. As such, it behooves the website operator to immediately strip off this traffic arriving at his or her website before it even enters. Why waste bandwidth on traffic that is unprofitable and potentially dangerous?

There's no such thing as useless website traffic, however, so this undesirable traffic is not merely blocked but re-routed at the server level using the aforementioned .htaccess file. The volume of this traffic will vary from website to website, with some operators selling it directly, while others send it to sponsors or trade it for fresh surfers.

It's the latter option that I prefer. If I can trade an "undesirable" for a new surfer, then I'm happy. If I can trade one for several new surfers, then I am even happier. As such, the fate of my "undesirables" is often a "whirlwind" page where they will find top lists and trades behind every click. I'm not trying to make a buck on this visitor, I just want a shot at a better one in exchange for him.

Sometimes, filtering off foreign traffic is desirable, not because the traffic is "undesirable" – but because someone else could make better use of it than you could. For example, I can isolate, say, my Portuguese traffic and look at how well my website converts that traffic. I might also want to send that traffic to a sponsor with a Portuguese site targeting a similar niche, to measure which was the most profitable use of that particular traffic to me.

If both my own website as well as the sponsor's website were profitable to promote, then making both offers to my Portuguese surfers would be in order. I could, for example, use a full-page ad for the Portuguese website with a pass-through link to my own website – the surfer's intended destination – and send my less profitable traffic straight-through to the "whirlwind" page. Let your stats guide your actions.

You can find a list of the country codes that you'll need to build your own geo-redirect list here.

The following is an example of the geo-redirect code which you can copy and paste. It allows for separate targeting of Asian traffic with redirects to Chinese, Japanese and Korean websites, as well as a block of "high fraud" countries which redirect to a "garbage" URL – the perfect place for a "whirlwind" page:

• Asian:
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^HK$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^MO$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^MY$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SG$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TW$ [NC]
RewriteRule ^(.*)$ https://chinese.url [R,L]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^JP$ [NC]
RewriteRule ^(.*)$ https://japanese.url [R,L]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KP$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KR$ [NC]
RewriteRule ^(.*)$ https://korean.url [R,L]

• Illegal and/or High Fraud:
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AE$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AF$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AL$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AM$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AZ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BH$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BR$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BY$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CR$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CU$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CZ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^EE$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^EG$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^GE$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^HR$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^HU$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^ID$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IL$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IN$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IQ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IR$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^JO$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KG$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KH$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KW$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^KZ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LA$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LB$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LT$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LV$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LY$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^MD$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^OM$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^PH$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^PK$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^QA$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RO$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SA$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SD$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SI$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SK$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SY$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TH$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TJ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TM$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TN$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^TR$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^UA$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^UZ$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^VN$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^YE$ [NC,OR]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^YU$ [NC]
RewriteRule ^(.*)$ https://garbage.url [R,L]

Next week, I'll add some additional coding and put it all together for you, in "Real World .htaccess Files."

Copyright © 2026 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

opinion

Key Questions Online Merchants Should Know About PCI Compliance

Choosing a payment provider involves more than comparing features and pricing. It's also about trusting that your customers' payment information is being handled securely. Every August, Segpay is recertified as a Level 1 PCI-compliant service provider, a milestone the company has achieved for the past 20 years. Having helped write Segpay's original PCI policy documents more than two decades ago, I've seen firsthand how PCI compliance has evolved.

Cathy Beardsley ·
profile

New Moon Network's Savannah Sly on Turning Lived Experience Into Advocacy

Savannah Sly is the first to admit she didn't always understand sex work. At 18, she was an art student in Boston, working part-time at a box office and, as she puts it, "broke as a joke." While looking for ways to make ends meet, she often found herself browsing Craigslist's adult ads, intrigued by the women advertising their services.

Jackie Backman ·
opinion

How to Safeguard Your Website Against CIPA Claims

There is a new wave of lawsuits targeting online businesses, including adult websites. These suits involve the California Invasion of Privacy Act (CIPA), and they are becoming increasingly prevalent. In fact, three different clients of my law firm were recently served or threatened with CIPA lawsuits — all in the same week.

Nick Zargarpour ·
trends

How Clear Talent Contracts Can Save Time and Money

The adult industry has always been defined by its ability to evolve. It embraced online distribution before much of mainstream entertainment did, pioneered subscription-based business models, and continues to evolve in areas ranging from streaming to AI.

Corey Silverstein ·
profile

Jerkmate's Lili L. on Dropping Beats to Fuel Creator Success

Long before joining the Jerkmate team as a marketing strategist, Lili L. was the kind of person who always felt like she needed a new challenge.

Women In Adult ·
opinion

What Mastercard's Specialty Fee Overhaul Means for Merchants

For business owners in the adult and specialty spaces, the rules have always been written in someone else’s office. The latest Mastercard changes are no exception, though there are practical ways merchants can begin preparing now.

Jonathan Corona ·
opinion

What to Know About Content Restrictions Across Global Markets

Throughout 2025, age verification remained a major focus as merchants worked to meet the requirements of 26 U.S. states, country-specific regulations in France, the UK, and Italy, and evolving guidance from the European Commission.

Cathy Beardsley ·
opinion

Key Strategies for Building an Effective Website Compliance Program

For adult website operators, compliance can no longer live in a folder that only opens when a bank, regulator, attorney, or payment processor starts asking questions.

Corey D. Silverstein ·
profile

Ricci Levy on Standing Up for the Right to Be Heard

When Ricci Levy speaks about human rights, she does not use detached, academic language. She speaks with urgency, emotion and the kind of passion that immediately makes it clear just how deeply personal this work is for her.

Women In Adult ·
opinion

Lessons From Decades of Building the Adult Internet

After my first year of college, I needed a job. So I did what people did back then: I opened the newspaper and started scanning the classifieds. One listing stood out: “Image Librarian.” I had no idea what that meant, but I applied, and got the job.

Tanguy ·
Show More