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

Posted

技术标签:

【中文标题】nginx不区分大小写的url重定向[关闭]【英文标题】:nginx case insensitive url redirection [closed] 【发布时间】:2014-03-01 22:03:17 【问题描述】:

我想在 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 错误。

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

请帮帮我,因为我被困了几天。

【问题讨论】:

***.com/questions/26587354/…的可能重复 【参考方案1】:

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

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

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

【讨论】:

如果url前面有查询如www.example.com/WapsiteDataFetch?q=123等怎么办。我应该如何实现这个 删除 /images$1 之后的 ? 以附加请求参数。 它不起作用..您可以给我任何其他建议。 nginx.conf文件中proxy有什么用 我已经更新了代码。对你起作用吗?代理允许将请求传递到另一台服务器。 - nginx.org/en/docs/http/ngx_http_proxy_module.html【参考方案2】:

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

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

【讨论】:

以上是关于nginx不区分大小写的url重定向[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nginx 中转换(重写)部分 URL

Nginx 指令之location

带有 mod_rewrite 的不区分大小写的 URL

nginx如何让URL不区分大小写

Nginx Location配置总结

glob及IO重定向