nginx 不区分大小写的 URL 重定向 [已关闭]

问题描述 投票:0回答:2

我想在 nginx 中进行不区分大小写的 URL 重定向 下面是我的代码。

location ~* WapsiteDataFetch{
      rewrite  WapsiteDataFetch(.*) http://images.xample.com/xyz/images$1 permanent;
    }

在上述情况下,

www.example.com/WapsiteDataFetch
已正确重定向至
http://images.xample.com/xyz/images
但是,URL
"www.example.com/WAPSITEDATAFETCH"
未正确重定向。

即使我更改单个字符,也会出现 404 错误。

我尝试了很多博客文章,也看到了很多来自堆栈溢出的帖子,其中很多人都建议“~*”,但就我而言,这对我没有帮助。

我该如何解决这个问题?

regex nginx redirect
2个回答
22
投票

使用

(?i)
不区分大小写地匹配 - http://perldoc.perl.org/perlretut.html

位置块不是必需的。试试这个。

rewrite (?i)^/WapsiteDataFetch(.*) http://images.xample.com/xyz/images$1 permanent;

2
投票

您可以通过在位置块内进行捕获来避免使用正则表达式引擎两次

location ~* WapsiteDataFetch(.*) {
  return 301 http://images.xample.com/xyz/images$1;
}
© www.soinside.com 2019 - 2024. All rights reserved.