nginx 重定向不带尾部斜杠且不区分大小写

nginx 重定向不带尾部斜杠且不区分大小写

我对 nginx 还不太熟悉,我想出了这个示例,它可以将“domain.com/gis”和“domain.com/gis/”重定向到“domain.com/gis_public”。我遇到的问题是它不会重定向“domain.com/GIS”或“domain.com/Gis”。

我喜欢为所有情况做好计划,以防有人以正确的大写格式输入 GIS 首字母缩写词或只将一个字符大写。所以我需要让它不区分大小写,但我找不到办法。任何帮助都将不胜感激。

location ~* ^/gis(?:/(.*))?$ {
  rewrite /gis(.*) https://domain.com/gis_public$1 permanent;
}

编辑 我最终有效的代码:

location ~* ^/gis(?:/(.*))?$ {
  rewrite (?i)^/gis(.*) https://domain.com/gis_public$1 permanent;
}

感谢大家的帮助!

答案1

这只是一个正则表达式,因此您可以在此基础上进行匹配。

rewrite /[Gg][Ii][Ss](.*) https://....

可能存在一种更简洁的方法来做到这一点,但现在还没想到。

相关内容