加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.com/)- 科技、建站、内容创作、云计算、网络安全!
当前位置: 首页 > 运营中心 > Nginx > 正文

NGINX用语言后缀重写根URL

发布时间:2021-01-11 21:32:48 所属栏目:Nginx 来源:互联网
导读:我正在尝试向我的NGINX配置添加一个简单的规则,以便始终使用语言后缀www.example.com/en/重写根URL www.example.com.我已经试过了:server { listen 80; server_name www.example.com; location / { rewrite ^$www

我正在尝试向我的NGINX配置添加一个简单的规则,以便始终使用语言后缀www.example.com/en/重写根URL www.example.com.我已经试过了:

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,则它们需要包括协议重写/ x https://example.com/y;.

无需将这样的重写规则放在位置块中.

使用位置块返回30倍

使用位置块需要对网址使用完全匹配:

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

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

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读