如何实现Nginx不区分大小写的目录位置重定向301

San*_*sad 8 nginx

我想将http://example.com/SomeThing重定向到http://example.com/something

something是nginx location(/something)目录

请建议如何实现不区分大小写的目录位置重定向

Col*_*ney 13

我假设http://example.com/something不会被重定向.因此,使用与^~修饰符区分大小写匹配的前缀位置来跳过检查正则表达式:

location ^~ /something {
    return 200 "case sensitive something match
";
}
Run Code Online (Sandbox Code Playgroud)

现在为重定向添加不区分大小写的正则表达式位置:

location ~* ^/something {
    return 301 $scheme://$host/something;
}
Run Code Online (Sandbox Code Playgroud)


zav*_*avg 9

来自nginx文档:

位置可以由前缀字符串或正则表达式定义.使用前面的"〜*"修饰符(对于不区分大小写的匹配)或"〜"修饰符(对于区分大小写的匹配)指定正则表达式.

因此~*在位置必须用于不区分大小写的匹配.

location ~* /something/ {
    # your code here
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用正则表达式,则它不再是** pre ** fix字符串。确保您执行`location〜* ^ / something /`仅从头开始匹配。 (3认同)