NGINX用语言后缀重写根URL

前端之家收集整理的这篇文章主要介绍了NGINX用语言后缀重写根URL 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试向我的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(永久)重定向.

原文链接:https://www.f2er.com/nginx/532298.html

猜你在找的Nginx相关文章