nginx不区分大小写的URL重定向

时间:2014-02-05 12:52:05

标签: regex redirect nginx

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

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

在上述情况下,

www.example.com/WapsiteDataFetch被正确重定向到http://images.xample.com/xyz/images 但是,网址"www.example.com/WAPSITEDATAFETCH"未正确重定向。

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

我已经尝试了很多博客,并且看到很多帖子来自堆栈溢出,其中很多都建议“〜*”,但在我的情况下它并没有帮助我。

请帮助我,因为我被困在这几天。

2 个答案:

答案 0 :(得分:17)

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

不需要位置块。试试这个。

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

答案 1 :(得分:2)

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

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