@@ -40,7 +40,11 @@ server {
40
40
default_type text/plain;
41
41
index index.html;
42
42
43
+ error_page 404 @localized_404;
44
+
43
45
location / {
46
+ try_files $uri $uri/ @english_fallback;
47
+
44
48
location ~ \.json$ {
45
49
add_header access-control-allow-origin *;
46
50
}
@@ -55,6 +59,19 @@ server {
55
59
add_header access-control-allow-origin *;
56
60
}
57
61
}
62
+
63
+ # instead of serving a 404 page when a page hasn't been translated
64
+ location @english_fallback {
65
+ if ($uri ~* ^/(it|ko)/) {
66
+ set $lang $1;
67
+ }
68
+ rewrite ^/(it|ko)/(.*)$ /en/$2;
69
+ }
70
+
71
+ # serve a localized 404 page if we've got $lang set from @english_fallback
72
+ location @localized_404 {
73
+ try_files /$lang/404.html /en/404.html;
74
+ }
58
75
}
59
76
60
77
server {
@@ -192,7 +209,7 @@ server {
192
209
gzip_disable "MSIE [1-6]\.";
193
210
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
194
211
195
- error_page 404 /en/404.html ;
212
+ error_page 404 @localized_404 ;
196
213
197
214
if ($host ~* ^www\.) {
198
215
rewrite ^(.*)$ https://nodejs.org$1;
@@ -219,11 +236,26 @@ server {
219
236
location / {
220
237
rewrite ^/$ /en/ redirect;
221
238
239
+ try_files $uri $uri/ @english_fallback;
240
+
222
241
location ~ \.json$ {
223
242
add_header access-control-allow-origin *;
224
243
}
225
244
}
226
245
246
+ # instead of serving a 404 page when a page hasn't been translated
247
+ location @english_fallback {
248
+ if ($uri ~* ^/(it|ko)/) {
249
+ set $lang $1;
250
+ }
251
+ rewrite ^/(it|ko)/(.*)$ /en/$2;
252
+ }
253
+
254
+ # serve a localized 404 page if we've got $lang set from @english_fallback
255
+ location @localized_404 {
256
+ try_files /$lang/404.html /en/404.html;
257
+ }
258
+
227
259
location /download {
228
260
alias /home/dist/nodejs;
229
261
autoindex on;
0 commit comments