erzwingt die Umleitung von Nginx zum Serverstamm

erzwingt die Umleitung von Nginx zum Serverstamm

Ich habe die folgende Zeile in nginx:

try_files $uri $uri/ /index.html;

So wie ich das verstehe, werden alle Abfragen in Dateien umgeschrieben, die nicht gefunden werden index.html. Das bedeutet, dass index.html?foo=bardas idontexist.html?foo=bargleiche Ergebnis übrig bleibt, was das Crawling von Google durcheinander bringt.

Wie kann ich die URL nicht umschreiben, sondern auf die Standard-URL umleiten?

Die perfekte Lösung wäre sogar ohne index.html. So http://domain.com/idontexist.html?foo=barwürde eine Weiterleitung per 301 erfolgen aufhttp://domain.com/?foo=bar

Antwort1

location / {
    try_files $uri $uri/ @to_home;
    ...
}

location @to_home {
    return 301 /$is_args$args;
}

Antwort2

Ich habe den Codeausschnitt von VBart oben gekürzt. Er funktioniert wie er soll:

try_files $uri $uri/ / =301;

verwandte Informationen