gpt4 book ai didi

NGINX 用语言后缀重写根 url

转载 作者:行者123 更新时间:2023-12-01 13:46:14 27 4
gpt4 key购买 nike

我正在尝试向我的 NGINX 配置添加一个简单的规则,根 url www.example.com 总是用语言后缀重写 www.example.com/en/。我试过这个:

server {
listen 80;
server_name www.example.com;

location / {
rewrite ^$ www.example.com/en/ permanent;
}

...
}

但运气不好。我哪里错了?另外,是否有可能有一个条件,NGINX 检查是否有 /en/ 后缀,如果没有,添加一个?

编辑

所以我离最初想要的只有一个字符:

server {
listen 80;
server_name www.example.com;

location / {
# needed the / in between the anchor tags
rewrite ^/$ www.example.com/en/ permanent;
}

...
}

最佳答案

有两种处理重定向的正常方法:

使用重写规则

server {
...
rewrite ^/$ /en/ permanent;
...
}

请注意 rewrite rules不需要是绝对 url,但如果它们是绝对 url,则它们需要包含协议(protocol) rewrite/x https://example.com/y;

没有必要将这样的重写规则放在位置 block 中。

使用位置 block + 返回 30x

使用位置 block 需要对 url 使用完全匹配:

server {
...
location = / {
return 301 /en/;
}
...
}

= 的使用意味着该规则将 匹配对域根的请求,否则 rules of location block precedence意味着位置 block 将是所有请求的默认值。 Return用于发出 301(永久)重定向。

关于NGINX 用语言后缀重写根 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com