【问题标题】:nginx redirect old site urls and modify 1 language suffix onlynginx 重定向旧站点 url 并仅修改 1 种语言后缀
【发布时间】:2016-12-25 23:44:58
【问题描述】:

我想将旧网站网址重定向到新网站。但是新网站的页面名称不同,语言字符也发生了变化。

例如:

en/about/info 将重定向到en/com/information

但是

ge/about/info 将转到ka/com/information

map $request_uri $redirect_uri {

<lang>/about/info/ $lang/com/information/

}

任何想法我会怎么做?有很多 url,所以我不想为每种语言编写这些 url。

【问题讨论】:

    标签: redirect nginx


    【解决方案1】:

    map 指令可以捕获正则表达式的一部分,但不能在映射结果中使用该捕获。

    因此,可以创建一个名为lang 的命名捕获(例如)并在评估映射变量之后使用它。例如:

    map $request_uri $redirect_uri {
    ~*(?<lang>/\w\w/)about/info/ com/information/;
    }
    

    serverlocation 块中:

    if ($redirect_uri) {
        return 301 $lang$redirect_uri;
    }
    

    请注意,$lang 仅在 $redirect_uri 的值在 if 语句中计算后创建。

    详情请见this document

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 2019-08-02
      • 2019-11-15
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      相关资源
      最近更新 更多