Index: modules/web/templates/site.conf.erb |
=================================================================== |
--- a/modules/web/templates/site.conf.erb |
+++ b/modules/web/templates/site.conf.erb |
@@ -1,76 +1,56 @@ |
expires 1d; |
root /var/www/<%= vhost %>; |
index index; |
default_type text/html; |
charset utf-8; |
+set $index_page "index"; |
+ |
<% if @custom_config %> |
<%= custom_config %> |
<% end %> |
-# Match Accept-Language header against available languages |
+location / |
+{ |
+ # Match Accept-Language header against available languages |
Wladimir Palant
2015/04/15 12:23:29
This comments makes little sense now, I'll change
|
-set $preferredLang ""; |
-if ($http_accept_language ~ ^(\w\w)-(\w\w)\b) |
-{ |
- set $preferrredLang $1_$2; |
-} |
-if (!-f $document_root/$preferredLang/index) |
-{ |
- set $preferredLang ""; |
-} |
+ set $preferredLang en; |
+ set $preferredRegion ""; |
+ if ($http_accept_language ~ ^(\w\w)\b) |
+ { |
+ set $preferredLang $1; |
+ } |
+ if ($http_accept_language ~ ^\w\w-(\w\w)\b) |
+ { |
+ set $preferredRegion $1; |
+ } |
-set $temp "$preferredLang|$http_accept_language"; |
-if ($temp ~ ^\|(\w\w)\b) |
-{ |
- set $preferredLang $1; |
-} |
-if (!-f $document_root/$preferredLang/index) |
-{ |
- set $preferredLang ""; |
-} |
+ # Redirect canonical URLs to language-specific versions |
-if ($preferredLang = "") |
-{ |
- set $preferredLang "en"; |
-} |
+ if (-f "$document_root/${preferredLang}_$preferredRegion$uri") |
+ { |
+ rewrite ^(.*) /${preferredLang}_$preferredRegion$1 last; |
+ } |
+ if (-f "$document_root/$preferredLang$uri") |
+ { |
+ rewrite ^(.*) /$preferredLang$1 last; |
+ } |
+ if (-f "$document_root/en$uri") |
+ { |
+ rewrite ^(.*) /en$1 last; |
+ } |
-# Always redirect server root |
+ # Redirect server/language root |
-rewrite ^/$ /$preferredLang/ last; |
- |
-# Don't do anything if requested file exists |
- |
-if (-f $request_filename) |
-{ |
- break; |
-} |
-if (-d $request_filename) |
-{ |
- break; |
-} |
- |
-# Redirect canonical URLs to language-specific versions |
- |
-set $canonical $uri; |
-if ($canonical ~ ^(.*?)\?) |
-{ |
- set $canonical $1; |
-} |
- |
-if (-f $document_root/$preferredLang$canonical) |
-{ |
- rewrite ^ /$preferredLang$canonical last; |
-} |
-if (-f $document_root/en$canonical) |
-{ |
- rewrite ^ /en$canonical last; |
+ rewrite ^/$ /$index_page last; |
+ rewrite ^/(\w\w(_\w\w)?)$ /$1/ permanent; |
+ rewrite ^/(\w\w(_\w\w)?)/$ /$1/$index_page last; |
} |
<% if @multiplexer_locations %> |
<% @multiplexer_locations.each do |location| %> |
location <%= location %> |
{ |
fastcgi_pass unix:/tmp/multiplexer-fastcgi.sock; |
include /etc/nginx/fastcgi_params; |