Joomla multilingual subdomain redirect/rewrite

Hi all,

I have a multilingual Joomla website, whose URL currently look like the
following :
http://www.example.com/fr/test/test.html (note the FR posision after the
server name)

In order to achieve some SEO, I’d like my URLs to look like this :
http://fr.example.com/test/test.html
Ie: the langage code is now part of the subdomain, and removed from the
request_uri

I configured my DNS (fr.example.com and www.example) as A reccord
pointing to the same IP address.

I tried the following rule, that match the fr langage code and display
the correct URL, but I still have a 404 error because the server could
not find the new rewritten page :

if ($request_uri ~* ^/(?fr)/(?.*)$ {
rewrite ^ http://$lang.example.com/$rest? permanent;
}

Now, I’m looking for a way to tell the server to serve the page
/fr/test/test.html when the URL is http://fr.example.com/test/test.html
Should I add a location @lang {} directive ? or use proxy pass ?

I’m quite new to Nginx, and I’m lost :frowning:

Moreover, I have several country codes such as: de, fr, cn, it… In
this post i’m focusing on the fr one, but i’m looking for a generic
solution.

Thanks !

Posted at Nginx Forum:

Hi all,

In fact, I was looking for a transparent redirect. Here is what I finaly
did :

server {
server_name ~^(?.+).example.com$;
location / {
rewrite /(.*)$ /$lang/$1 break;
proxy_pass http://www.example.com;
proxy_redirect http://www.example.com
http://$lang.example.com/$request_uri;
}
}

server {
listen 80;
server_name www.example.com;

}

One more question though : is there a way for Nginx to rewrite all the
URLs in the generated page so they are all SEF ? ie:
http://fr.example.com instead of http://www.example.com/fr ?

Posted at Nginx Forum: