-
-
Save markhowellsmead/0c414cea619727a3618b to your computer and use it in GitHub Desktop.
# Redirect visitors who request the root domain path (e.g. www.mywebsite.ch) to the appropriate language version | |
# Fallback to English version if no matching browser language defined | |
# Based on language version being at e.g. www.mywebsite.ch/de/ | |
# This has no effect on any subpaths of the website, and therefore has no effect on e.g. WordPress admin. | |
# Using a 302 temporary redirect header stops the redirection from being cached in the browser. | |
# language is ES-MX (Mexico) | |
RewriteCond %{HTTP:Accept-Language} ^es-mx [NC] | |
RewriteRule ^$ /mx/ [L,R=302] | |
# language is ES-ES (Spain) | |
RewriteCond %{HTTP:Accept-Language} ^es-es [NC] | |
RewriteRule ^$ /es/ [L,R=302] | |
# language starts with DE | |
RewriteCond %{HTTP:Accept-Language} ^de [NC] | |
RewriteRule ^$ /de/ [L,R=302] | |
# language starts with FR | |
RewriteCond %{HTTP:Accept-Language} ^fr [NC] | |
RewriteRule ^$ /fr/ [L,R=302] | |
# language starts with IT | |
RewriteCond %{HTTP:Accept-Language} ^it [NC] | |
RewriteRule ^$ /it/ [L,R=302] | |
# else redirect to the English version | |
RewriteRule ^$ /en/ [L,R=302] |
Hi Mark,
Thank you for this piece of code. I am trying to make aredirect of the home page so that users have their native language available and I never thought to do it using htaccess! I'll give it a try.
However, I'm worried that robots will also be redirected, does the HTTP:Accept-Language only refer to user using a browser ?
I tried a Wordpress plugin in the past for redirection and it messed up with my index in google as it changed all urls of the main language to the redirected one :/
Any device or browser which sends the HTTP Accept-Language header will be redirected.
How can i change the redirection from subpath to subdomain?
Ex.: I have 3 multilanguage websites instances in Wordpress Multisite:
Portuguese (pt-BR) - https://maxispuma.com.br/
English (us-EN) - https://en.maxispuma.com.br/
Spanish (es-ES) - https://es.maxispuma.com.br/
How can i make it redirect across subdomains based on browser preferred language?
Ps.: I'm new to coding... 😐😐
Hey !
Thank you very much for this one !
Appreciated!
I've updated the code example to use a 302 (temporary redirect) header, as using 301 may break subsequent requests due to the 301 permanent redirect header being cached in the browser.