From 163d48704100e25f02d12eee6b1f195924bb06c0 Mon Sep 17 00:00:00 2001 From: Jason Thomas Date: Thu, 30 May 2024 18:19:03 +0100 Subject: [PATCH 1/2] Add config options to handle missing trailing slash in nginx --- .../etc/nginx/conf.d/default.conf | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/ui/container-files/etc/nginx/conf.d/default.conf b/ui/container-files/etc/nginx/conf.d/default.conf index 65c15c05f..c3354fba6 100644 --- a/ui/container-files/etc/nginx/conf.d/default.conf +++ b/ui/container-files/etc/nginx/conf.d/default.conf @@ -25,10 +25,6 @@ server { root /usr/share/nginx/html; index index.html index.htm; - # Modify this rule by removing '/ui' when the UI app is moved to the URL root dir '/' and the old Gateway App is decomissioned. - # And also you will need to update the base-href setting in the index.html file to '/'. - try_files /ui/en /ui/en/index.html; - # Disable Caching sendfile off; add_header Last-Modified $date_gmt; @@ -38,13 +34,24 @@ server { etag off; # The load balancer is Temporarily configured to forward all requests for '^/ui(.*)' to this nginx virtual host. - # This context path for this app will eventaully be changed to the root dir '/' and the Gateway will be decomissioned and all rewrites and location block will need to be re-assessed. + # This context path for this app will eventully be changed to the root dir '/' and the Gateway App will be decomissioned and all rewrites and location block will need to be re-assessed. # The following rewrite rule removes '/ui' from the uri so that files can be referenced relative to the document root path. # Requires `base href` in the static html files be set to "./" or "/ui//" {e.g "/ui/en/"} for this to work. - rewrite ^/ui/(.*)$ /$1 last; - location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)/(.*) { - try_files $uri $uri/ /$1/index.html?$args; + + # Temporary Rule, when the UI app is served from the root instead of `/ui` then this rewrite rule can be removed. + rewrite ^/ui/(.*)$ /$1 last; + + # 1.) / -> /en/index.html + try_files /ui/en/index.html /ui/en/index.html; + + # 2.) / -> //index.html + location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)$ { + try_files $uri $uri/index.html /$1/index.html?$args; + } + + # 3.) // -> //index.html + location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)/(.*)$ { + try_files $uri $uri/ /$1/index.html?$args; } - } } From 79e1e985505b7781a230fe87954d402c91d69284 Mon Sep 17 00:00:00 2001 From: Jason Thomas Date: Thu, 30 May 2024 18:25:17 +0100 Subject: [PATCH 2/2] updated explaination --- ui/container-files/etc/nginx/conf.d/default.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/container-files/etc/nginx/conf.d/default.conf b/ui/container-files/etc/nginx/conf.d/default.conf index c3354fba6..56168de73 100644 --- a/ui/container-files/etc/nginx/conf.d/default.conf +++ b/ui/container-files/etc/nginx/conf.d/default.conf @@ -41,15 +41,15 @@ server { # Temporary Rule, when the UI app is served from the root instead of `/ui` then this rewrite rule can be removed. rewrite ^/ui/(.*)$ /$1 last; - # 1.) / -> /en/index.html + # 1.) /$ -> /en/index.html try_files /ui/en/index.html /ui/en/index.html; - # 2.) / -> //index.html + # 2.) /$ -> //index.html location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)$ { try_files $uri $uri/index.html /$1/index.html?$args; } - # 3.) // -> //index.html + # 3.) //$ -> //index.html location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)/(.*)$ { try_files $uri $uri/ /$1/index.html?$args; }