-
-
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] |
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.
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!
No, sorry, I don't.