[英]Nginx use different path based on language code
我有一个English
和Spanish
两种语言的网站。
每种语言的网站都托管在不同的指令中
/var/www/html/en-US/ -> English version
/var/www/html/es/ -> Spanish version
使用以下nginx
配置将用户重定向到特定于语言的目录
https://example.com/en/ -> Serve English version
https://example.com/es/ -> Serve Spanish version
并且配置是
map $http_accept_language $accept_language {
~*^es es;
~*^en en;
}
server {
server_name example.com;
root /var/www/html/en-US;
# Fallback to default language if no preference defined by browser
if ($accept_language ~ "^$") {
set $accept_language "en";
}
# Redirect "/" to Angular application in the preferred language of the browser
rewrite ^/$ /$accept_language permanent;
location ~ ^/en {
root /var/www/html/en-US;
index index.html;
try_files $uri $uri/ =404;
}
location ~ ^/es {
root /var/www/html/es;
index index.html;
try_files $uri $uri/ =404;
}
}
现在,访问https://example.com
重定向到https://example.com/en
但给出 404。
通过进行以下更改解决了该问题
server {
server_name example.com;
root /var/www/html/en-US/;
# Fallback to default language if no preference defined by browser
if ($accept_language ~ "^$") {
set $accept_language "en";
}
# Redirect "/" to Angular application in the preferred language of the browser
rewrite ^/$ /$accept_language/ permanent;
location /en/ {
alias /var/www/html/en-US/;
try_files $uri $uri/ =404;
}
location /es/ {
alias /var/www/html/es/;
try_files $uri $uri/ =404;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.