Advertisements

How to configure .htaccess redirects based on Geo IP

Recently I had a request, asking how can we setup redirects by country to have country specific landing pages. This can be done by installing mod_geoip, you can download GeoIP legacy Apache module from GITHUB – compile the source on your environment and configure. Or you could install from a repository.

 For ubuntu you can run the following command:
sudo apt-get install php5-geoip php5-dev libgeoip-dev

Then, run the following command:

sudo pecl install geoip

Once the installation is complete, it will probably tell you that an extension= line cannot be found in your php.ini file. Let’s find your php.ini file and add the required lines:

sudo nano /etc/php5/apache2/php.ini

This will open your php.ini, we have to add “extension=geoip.so” to the [PHP] section:

[PHP]
;AFTER THE PHP SECTION NOT BEFORE
extension=geoip.so

and restart Apache:
sudo service apache2 restart

Now create a .htaccess file. For example if you want to block clients from Russia and China:

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry

If you want to redirect based on the country using mod_rewrite in combination with mod_geoip, your .htaccess file could look like this:

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(NL|BE)$
RewriteRule ^(.*)$ http://www.mydomain.com/nl/$1 [L]

For more example take a look at the website of MaxMind

That’s it – don’t forget to comment below.

Advertisements

6 comments On How to configure .htaccess redirects based on Geo IP

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Subscribe for updates

Enter your email address to subscribe to receive notifications of new content by email.

Join 5,882 other subscribers

Advertisements