Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add config options to handle missing trailing slash in nginx #1199

Merged
merged 2 commits into from
May 30, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions ui/container-files/etc/nginx/conf.d/default.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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/<langCode>/" {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.) /<langCode>$ -> /<langCode>/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.) /<langCode>/$ -> /<langCode>/index.html
location ~ ^/(cs|en|es|fr|it|ja|ko|pt|ru|zh-CN|zh-TW)/(.*)$ {
try_files $uri $uri/ /$1/index.html?$args;
}
}

}
Loading