Algo parecido com isto
location / {
try_files $uri $uri/index.html =404;
}
location ~ "(.*)[;~].*" {
try_files $1 $1/index.html =404;
}
Considere o seguinte arquivo de configuração do Nginx (Nginx versão 1.2.6 no Linux de 64 bits):
location / {
root html/www.domain.com;
}
location /image/ {
root html/static.domain.com;
}
Usando essa configuração, /index.html
é coletado de html/www.domain.com/index.html
; /secure/profile.html
foi coletado de html/www.domain.com/secure/profile.html
e /image/logo.jpeg
foi coletado de html/static.domain.com/image/logo.jpeg
.
No entanto, as solicitações ao seguinte resultam em erros (compreensivelmente):
/index.html;affiliate=msn
/image/logo.jpef~partner=msnbc
Qual deve ser a configuração correta do Nginx para ignorar as partes da URL, como ;affiliate=msn
e ~partner=msnbc
?
Alterou a configuração da seguinte forma para obter o comportamento desejado.
location /image/ {
rewrite ^(/image/.*)[\;\,\~].*$ $1 break;
root html/static.domain.com;
}
Por favor, note que o ponto e vírgula deve ser escapado (\;), pois é um delimitador de instrução nos arquivos de configuração do Nginx.
Tags nginx