目前,我有一个问题与NGINX.我喜欢提供一个静态的雨果生成的HTML网站.这个网站是多语言(en,de)和存储在不同的文件夹.
└─ /usr/share/nginx/html/my-app/
├─ en/
└─ fr/
所以我设置了一个NGINX配置来处理不同位置的en和de内容请求。
http {
...
server {
listen 8080;
server_name localhost;
index index.html;
root /usr/share/nginx/html;
location / {
root /usr/share/nginx/html/my-app/en
index index.html;
try_files $uri $uri/index.html =404;
}
location /de/ {
root /usr/share/nginx/html/my-app/de
index index.html;
try_files $uri $uri/index.html =404;
}
location /en-us/ {
root /usr/share/nginx/html/my-app/en
index index.html;
try_files $uri $uri/index.html =404;
}
...
}
此时NGINX只提供http://localhost:8080
,因此只提供EN内容。
但如果我请求http://localhost:8080/de
或http://localhost:8080/de/
总是有一个404错误.我不明白为什么DE内容找不到.有一个1:1的位置-文件夹匹配?!
另外,虚拟路径http://localhost:8080/any-lang
或http://localhost:8080/any-lang/
也不起作用。我的想法是,如果请求路径any-lang
,NGINX将使用en文件夹来提供内容。
我会很高兴的每一个建议或想法!
1条答案
按热度按时间xytpbqjk1#
让我从一个例子开始
当你发送一个请求到/images/地址时,nginx会在这个路径中寻找文件来服务它。
你有两个选择
1. Richard在评论中给出的解决方案(但请记住,文件夹名称必须与地址相同-〉
/en-us
文件夹必须是/usr/share/nginx/html/my-app/en-us
2.使用
alias
代替root