From e8d291e1239bc4fee3ff8927f21a3ce0de99d89f Mon Sep 17 00:00:00 2001 From: Phillip Johnsen Date: Fri, 29 Jan 2016 22:51:03 +0100 Subject: [PATCH] nodejs.org: falling back to english when page hasn't been translated. Refs https://github.com/nodejs/nodejs.org/pull/490 --- setup/www/resources/config/nodejs.org | 34 ++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/setup/www/resources/config/nodejs.org b/setup/www/resources/config/nodejs.org index bcb13dbcb..dc9d6a033 100644 --- a/setup/www/resources/config/nodejs.org +++ b/setup/www/resources/config/nodejs.org @@ -40,7 +40,11 @@ server { default_type text/plain; index index.html; + error_page 404 @localized_404; + location / { + try_files $uri $uri/ @english_fallback; + location ~ \.json$ { add_header access-control-allow-origin *; } @@ -55,6 +59,19 @@ server { add_header access-control-allow-origin *; } } + + # instead of serving a 404 page when a page hasn't been translated + location @english_fallback { + if ($uri ~* ^/(it|ko)/) { + set $lang $1; + } + rewrite ^/(it|ko)/(.*)$ /en/$2; + } + + # serve a localized 404 page if we've got $lang set from @english_fallback + location @localized_404 { + try_files /$lang/404.html /en/404.html; + } } server { @@ -192,7 +209,7 @@ server { gzip_disable "MSIE [1-6]\."; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; - error_page 404 /en/404.html; + error_page 404 @localized_404; if ($host ~* ^www\.) { rewrite ^(.*)$ https://nodejs.org$1; @@ -219,11 +236,26 @@ server { location / { rewrite ^/$ /en/ redirect; + try_files $uri $uri/ @english_fallback; + location ~ \.json$ { add_header access-control-allow-origin *; } } + # instead of serving a 404 page when a page hasn't been translated + location @english_fallback { + if ($uri ~* ^/(it|ko)/) { + set $lang $1; + } + rewrite ^/(it|ko)/(.*)$ /en/$2; + } + + # serve a localized 404 page if we've got $lang set from @english_fallback + location @localized_404 { + try_files /$lang/404.html /en/404.html; + } + location /download { alias /home/dist/nodejs; autoindex on;