Weiterleitung zur URL nur, wenn die Ziel-URL gültig ist

0

Ich habe eine Umleitungsregel wie folgt eingerichtet

#redirect old phpbb links to xenforo links
if ( $arg_p ) {
   rewrite ^\/forum\/viewtopic\.php /forum/posts/$arg_p/? permanent;
}

Welches es eine 301 zu jeder URL sendet, die diesem regulären Ausdruck zum neuen Format entspricht.

Ich würde jedoch gerne wissen, ob es eine Möglichkeit gibt, diese Weiterleitung NUR dann durchzuführen, wenn die Ziel-URL gültig ist.

Bogdan
quelle
Warum willst du das und was soll passieren, wenn es möglich ist?
Alexey Ten
Ich möchte eine saubere 404 zurückgeben, wenn die Ziel-URL nicht vorhanden ist, ohne sie vorher umzuleiten.
Bogdan

Antworten:

1

Sie können das nicht so einfach machen und es ist unwahrscheinlich, dass Sie es wirklich wollen.

Wenn Sie könnten dies tun, wäre es eine Abfrage , um Ihre Web - Anwendung für jede einzelne eingehende Anfrage, benötigt zusätzlich in dem Dienst die Anforderung selbst, also etwa die Last auf dem Server zu verdoppeln. Dies könnte wahrscheinlich mit einem cleveren eingebetteten Lua-Code geschehen, aber ich denke, Sie möchten Ihren Server wahrscheinlich nicht überlasten.

Leiten Sie einfach alles um und lassen Sie das Ziel (Ihr neues Forum) bei Bedarf eine 404 bereitstellen. Dies hat keine wirklichen Auswirkungen auf die Suchmaschinenoptimierung, da die ursprünglichen Links bereits 404 waren. Aber es bietet eine bessere Benutzererfahrung, da eingehender Verkehr zu toten Links zumindest das neue Forum und nicht eine einfache weiße Nginx 404-Seite sieht.

Michael Hampton
quelle
Nun, um ehrlich zu sein, SEO IST der Grund, warum ich das tun wollte. In den Webmaster-Tools habe ich Tonnen von 404-Dateien gefunden, die meiner Meinung nach durch veralteten Google-Index verursacht wurden. Normalerweise würde ich erwarten, dass Google nach einigen Versuchen aufhört, diese Links zu indizieren. Aber es ist schon fast eine Woche her und der Index wurde nicht aktualisiert und ich bekomme immer wieder diese 404-Fehler. Ich dachte, das passiert wegen der Weiterleitungen.
Bogdan
Google wird 404s im Wesentlichen für immer ausprobieren, falls die Seite jemals zurückkommt.
Michael Hampton