
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=bar
das idontexist.html?foo=bar
gleiche 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=bar
wü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;