我试图强制一个 URL 指向一个新位置。例如:
我目前在网站上设置了一个“地图”:
map $uri $is_rewrite {
default no_redirect;
include /home/xxx/conf/web/chambres.com.extra/links.map;
}
Run Code Online (Sandbox Code Playgroud)
...在该文件中,规则之一是:
/gites/ https://$http_host;
#/Gites/ https://$http_host;
/french/Gites/ https://$http_host;
Run Code Online (Sandbox Code Playgroud)
如果我取消注释第 2 行,则会出现错误!
nginx: [emerg] /home/xxx/conf/web/chambres.com.extra/links.map:107 中的参数“/gites/”冲突
当我测试它时,果然,小写的有效,但大写的“Gites”无效。我怎样才能让它不区分大小写?
nginxmap指令确实被记录为进行不区分大小写的字符串匹配。
字符串匹配忽略大小写。
如果这其实是你的情况的问题(比如,你需要不同的结果/gites/和/Gites/),那么你可以使用正则表达式匹配,它可以是区分大小写不敏感或。
正则表达式应该从
“~”区分大小写匹配的符号开始,或者从不“~*”区分大小写匹配的符号 (1.0.4) 开始。
所以你可以匹配:
~^/gites/ https://one;
~^/Gites/ https://two;
Run Code Online (Sandbox Code Playgroud)
请记住,只有在映射中没有纯字符串值匹配时才会检查正则表达式。
如果您不需要每个字符串的不同结果,那么您不需要做任何事情。一个字符串匹配将涵盖所有情况。
| 归档时间: |
|
| 查看次数: |
2525 次 |
| 最近记录: |