簡體   English   中英

Angular i18n nginx 重定向

[英]Angular i18n nginx redirection

早上好,

我正在嘗試部署我的 Angular 9 應用程序的本地化版本。 我已將其部署在英語(主要語言)和西班牙語(定位語言)上

它工作得很好,除非我嘗試訪問沒有 /es 或 /en-US 的 URL 。

當我訪問 https://example.com/es/login 時工作正常,但當我訪問https://example.com/login給我發回錯誤。 我嘗試了所有可能的 nginx 配置,但沒有任何運氣。

我不知道這是否可能,或者我只是在浪費時間......

我的 nginx.config

server {
  listen 443 ssl;
  server_name https://example.com;
  ssl_certificate /etc/nginx/certs/certificate.crt;
  ssl_certificate_key /etc/nginx/certs/certificate.key;
  ssl on;
  root   /usr/share/nginx/html;
  index  index.html index.htm;
  location /en-US/ {
        alias   /usr/share/nginx/html/en-US/;
        try_files $uri$args $uri$args/ /en-US/index.html;
    }
    location /es/ {
        alias   /usr/share/nginx/html/es/;
        try_files $uri$args $uri$args/ /es/index.html;
    }
    
     set $first_language $http_accept_language;
    if ($http_accept_language ~* '^(.+?),') {
        set $first_language $1;
    }

    set $language_suffix 'en';
    if ($first_language ~* 'es') {
        set $language_suffix 'es';
    }

     location / {
        rewrite ^/$ https://$host/$language_suffix$request_uri;
    }
}

server {
    listen 80;
    listen [::]:80;

    server_name example.com;

    return 301 https://$host$request_uri;
}

提前致謝:)

我剛剛找到了解決方案,它對我有用:

只是改變

location / {
        rewrite ^/$ https://$host/$language_suffix$request_uri;
    }

location / {
        rewrite ^/$ https://$host/$language_suffix$request_uri;
        try_files $uri$args $uri$args/ /$language_suffix/index.html;
    }

希望它對某人有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM