: Geolocalization of my website I have a big problem with GeoIP. My website has the following structure www.domain.com it.domain.com de.domain.com I use the MaxMind GeoIP module in Apache to redirect
I have a big problem with GeoIP. My website has the following structure
domain.com it.domain.com
de.domain.com
I use the MaxMind GeoIP module in Apache to redirect users to the appropriate site base on their country.
My problem is when a user from Italy visits it.domain.com: if ge wants to change language and try to open domain.com, he is redirected back to it.domain.com. How can I prevent redirection when a user selects a language.
More posts by @Heady270
2 Comments
Sorted by latest first Latest Oldest Best
Forget geolocation - it's fundamentally flawed as you have noted. Browsers send an Accept-Language header, check that on your site and flip the user, once, to the language they say they prefer. On the subdomains, provide change-language links but do not do any checks.
I develop multi-lingual sites from Japan (read: do this a lot), my standard .htaccess rule for Japanese speakers looks like this:
RewriteCond %{HTTP:Accept-Language} ^ja.*$ [NC]
RewriteCond %{REQUEST_URI} "^/$"
RewriteRule .* ja.example.com/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^ja.*$ [NC]
RewriteRule .* ja.example.com%{REQUEST_URI} [L,R=301]
And of course there's no database to deal with. Japanese speakers on vacation in Brazil will still see the page in Japanese.
I would use cookie for this on *.domain.com. Special cookie value (let's say lang) should only be set if user clicks on any of the flags. Now on domain.com when routing users to localized websites you first check if cookie with lang value is set, if so, you redirect to a page with lang specified in the cookie. If, however, such cookie would not exist, then your redirection should work as usual.
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.