Estou tentando forçar um URL a apontar para um novo local. Por exemplo:
- site.com/Gites/
- site.com/gites/
Atualmente tenho um "mapa" configurado no site:
map $uri $is_rewrite {
default no_redirect;
include /home/xxx/conf/web/chambres.com.extra/links.map;
}
...e dentro desse arquivo, uma das regras é:
/gites/ https://$http_host;
#/Gites/ https://$http_host;
/french/Gites/ https://$http_host;
Se eu descomentar a 2ª linha, recebo um erro!
nginx: [emerg] parâmetro conflitante "/gites/" em /home/xxx/conf/web/chambres.com.extra/links.map:107
Quando eu testo, com certeza, o minúsculo funciona, mas não o maiúsculo "Gites". Como posso torná-lo insensível a maiúsculas e minúsculas?
map
A diretiva nginx está realmente documentada como fazendo correspondência de strings que não diferencia maiúsculas de minúsculas.Se isso for realmente um problema no seu caso (ou seja, você precisa de resultados diferentes para
/gites/
e/Gites/
), então você pode usar uma correspondência de expressão regular, que pode diferenciar maiúsculas de minúsculas ou não.Então você pode combinar em vez disso:
Lembre-se de que as expressões regulares só são verificadas se não houver correspondências de valores de string simples no mapa.
Se você não precisar de resultados diferentes para cada string, não precisará fazer nada. Uma correspondência de string cobrirá todos os casos.