nginx 重写映射

nginx 重写映射

我遇到了以下重写和映射问题,我不太确定该怎么做(但我认为 nginx map 和 nginx rewrite 模块是可行的方法)我很想听听一些想法。提前谢谢您 - 抱歉我的英语不好,我尽力了。我需要有关使用 string2 进行映射的帮助

URL 结构:domain.com/string1/string2/string3

  • 如果 string1 =“this”则重写

  • string2 应该映射为

    你好 -> abc
    怎么了 -> xyz
    不知道 -> 1o1

  • 字符串3

所以

/example/hello/you-> 无重定向
domain.com/this/whatsup/man->domain.org/xyz/man

希望您能理解我的意思。期待您的回复。

答案1

假设string1string2不包含/,使用rewrite来捕获string3,例如:

map $request_uri $new {
    default                 0;
    ~^/this/hello/          abc;
    ~^/this/whatsup/        xyz;
    ~^/this/dontknow/       1o1;
}

server {
    ...

    if ($new) {
        rewrite ^/[^/]+/[^/]+(.*)$ /$new$1 permanent;
    }

    ...
}

相关内容