| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 root /var/www/<%= @vhost %>; | 1 root /var/www/<%= @vhost %>; |
| 2 index index; | 2 index index; |
| 3 default_type text/html; | 3 default_type text/html; |
| 4 charset utf-8; | 4 charset utf-8; |
| 5 | 5 |
| 6 set $index_page "index"; | 6 set $index_page "index"; |
| 7 | 7 |
| 8 <% if @custom_config %> | 8 <% if @custom_config %> |
| 9 <%= @custom_config %> | 9 <%= @custom_config %> |
| 10 <% end %> | 10 <% end %> |
| 11 | 11 |
| 12 location / | 12 location / |
| 13 { | 13 { |
| 14 expires 1d; | 14 expires 1d; |
| 15 | |
| 16 # Redirect server/language root | |
| 17 | |
| 18 rewrite ^/$ /$index_page last; | |
| 19 rewrite ^/(\w\w(_\w\w)?)$ /$1/ permanent; | |
| 20 rewrite ^/(\w\w(_\w\w)?)/$ /$1/$index_page last; | |
| 15 | 21 |
| 16 # Match Accept-Language header against available languages | 22 # Match Accept-Language header against available languages |
| 17 | 23 |
| 18 set $preferredLang en; | 24 set $preferredLang en; |
| 19 set $preferredRegion ""; | 25 set $preferredRegion ""; |
| 20 if ($http_accept_language ~ ^(\w\w)\b) | 26 if ($http_accept_language ~ ^(\w\w)\b) |
| 21 { | 27 { |
| 22 set $preferredLang $1; | 28 set $preferredLang $1; |
| 23 } | 29 } |
| 24 if ($http_accept_language ~ ^\w\w-(\w\w)\b) | 30 if ($http_accept_language ~ ^\w\w-(\w\w)\b) |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 39 rewrite ^(.*) /${preferredLang}_$preferredRegion$1 last; | 45 rewrite ^(.*) /${preferredLang}_$preferredRegion$1 last; |
| 40 } | 46 } |
| 41 if (-e "$document_root/$preferredLang$uri") | 47 if (-e "$document_root/$preferredLang$uri") |
| 42 { | 48 { |
| 43 rewrite ^(.*) /$preferredLang$1 last; | 49 rewrite ^(.*) /$preferredLang$1 last; |
| 44 } | 50 } |
| 45 if (-e "$document_root/en$uri") | 51 if (-e "$document_root/en$uri") |
| 46 { | 52 { |
| 47 rewrite ^(.*) /en$1 last; | 53 rewrite ^(.*) /en$1 last; |
| 48 } | 54 } |
| 49 | |
| 50 # Redirect server/language root | |
| 51 | |
| 52 rewrite ^/$ /$index_page last; | |
| 53 rewrite ^/(\w\w(_\w\w)?)$ /$1/ permanent; | |
| 54 rewrite ^/(\w\w(_\w\w)?)/$ /$1/$index_page last; | |
| 55 } | 55 } |
| 56 | 56 |
| 57 # http://hub.eyeo.com/issues/3299 Redirect missing translations to default | 57 # Redirect language URIs if no translations are found for the requested page |
| 58 location ~ ^/([a-z][a-z])(/.+) { | 58 |
| 59 location ~ ^/([a-z][a-z]\_[A-Z][A-Z])(/.+) | |
| 60 { | |
| 59 if (!-e "$document_root$uri") | 61 if (!-e "$document_root$uri") |
| 60 { | 62 { |
| 61 rewrite ^/([a-z][a-z])(/.+) $2 redirect; | 63 # if there is no language+region translation, try parent language URI |
| 64 # example /es_MX/page -> /es/page | |
| 65 rewrite ^/([a-z][a-z])\_([A-Z][A-Z])(/.+) /$1$3 redirect; | |
| 62 } | 66 } |
| 63 } | 67 } |
| 64 | 68 |
| 65 # http://hub.eyeo.com/issues/3299 Redirect missing translations to default | 69 location ~ ^/([a-z][a-z])(/.+) |
| 66 location ~ ^/([a-z][a-z]\_[A-Z][A-Z])(/.+) { | 70 { |
|
f.nicolaisen
2017/09/06 23:00:19
It would be cool if we could join both these locat
| |
| 67 if (!-e "$document_root$uri") | 71 if (!-e "$document_root$uri") |
| 68 { | 72 { |
| 69 rewrite ^/([a-z][a-z]\_[A-Z][A-Z])(/.+) $2 redirect; | 73 # if there is no language translation, try canonical page for default langua ge |
|
f.nicolaisen
2017/09/06 23:00:19
Lots of duplication here :(
| |
| 74 # example /es/page -> /page | |
| 75 rewrite ^/([a-z][a-z])(/.+) $2 redirect; | |
| 70 } | 76 } |
| 71 } | 77 } |
| 72 | 78 |
| 73 <% if @multiplexer_locations %> | 79 <% if @multiplexer_locations %> |
| 74 <% @multiplexer_locations.each do |location| %> | 80 <% @multiplexer_locations.each do |location| %> |
| 75 location <%= location %> | 81 location <%= location %> |
| 76 { | 82 { |
| 77 fastcgi_pass unix:/tmp/multiplexer-fastcgi.sock; | 83 fastcgi_pass unix:/tmp/multiplexer-fastcgi.sock; |
| 78 include /etc/nginx/fastcgi_params; | 84 include /etc/nginx/fastcgi_params; |
| 79 } | 85 } |
| 80 <% end %> | 86 <% end %> |
| 81 <% end %> | 87 <% end %> |
| LEFT | RIGHT |