rewrite don't work in a multilanguage MVC site

António P. P. Almeida appa at perusio.net
Tue Oct 25 17:15:38 UTC 2011


On 25 Out 2011 17h56 WEST, olfativo at hotmail.com wrote:

> [1  <multipart/alternative (7bit)>]
> [1.1  <text/plain; iso-8859-1 (quoted-printable)>]
>
> Hi!Im trying to move from Apache to nginx (v1.1.6), but you know,
> rewrite newbie here... In my site when a user types http://site.com
> he's redirected to http://site.com/en/, and all the other URLs are
> internally handled by an index.php. This is my actual Apache

Try this:

At the http level.

map $http_accept_language $is_english {
   default 0;
   ~^en  1;
}

map $http_accept_language $is_spanish {
   default 0;
   ~^es  1;
}

location / {

  expires 30d;

  if ($is_english) {
     return 301 /en;  
  }

  if ($is_spanish) {
     return 301 /es;
  }

  location /es {}
      
  location /en {}

  try_files $uri $uri/ /index.php?ctr=$uri;
}

location ~\.php$ {
  # PHP stuff
}

--- appa



More information about the nginx mailing list