it-swarm.com.de

Gründe für die Verwendung einer benutzerdefinierten 404-Seite, die mit Code umgeleitet wird, im Vergleich zu einer 301-Umleitung?

Wir verschieben eine Website von Joomla nach Mura und einige der Seiten befinden sich unter verschiedenen URLs.

Ich kann 301 Weiterleitungen im Abschnitt "Regeln" der Datei "web.config" einrichten, um die alten URLs an neue Speicherorte weiterzuleiten.

Mein Chef möchte jedoch, dass ich eine benutzerdefinierte 404-Seite erstelle, die die angeforderte URL ermittelt und dann zur neuen umleitet. Beide Informationen werden in einer Datenbank gespeichert, die von der benutzerdefinierten 404-Seite verwendet wird, um die richtige Umleitung vorzunehmen.

Es ist eine Frage zwischen dem Tun

<rule name="rulename">
      <match url="OLD_URL" />
      <action type="Redirect" redirectType="Permanent" url="NEW_URL" />
</rule>

in der Datei web.config oder

<cfset path = cgi.path_info>
<cfif path eq "OLD_URL">
<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="NEW_URL">
<cfabort>

In der Kopfzeile der benutzerdefinierten 404-Seite in der Coldfusion-Vorlage. Ich habe es überprüft und die Coldfusion-Umleitung gibt einen 301-Statuscode zurück.

Mir scheint, dass die 301-Weiterleitungen in der Datei web.config der bessere Weg sind, fehlt hier etwas?

4
user95472

fehlt mir hier etwas?

Ich denke es gibt.

Wenn Sie die benutzerdefinierte 404-Seite verwenden, um die URL zu überprüfen, und anschließend Weiterleiten, wird eine 301-Weiterleitung an den Client zurückgegeben. Das gleiche wie beim Erstellen der Umleitung direkt in der Serverkonfiguration. Der Client sieht kein 404, wenn eine Umleitung stattfindet. Nur wenn keine Umleitung erfolgt (dh die URL befindet sich nicht in Ihrer Datenbanksuche), wird auf der benutzerdefinierten 404-Seite Fallback eine Standard-404-Antwort zurückgegeben.

Dies ist eine gute Idee ... anstatt die Weiterleitungslogik zu verarbeiten früh, bei jeder Anfrage - was sich möglicherweise auf die Leistung von legitimen Seitenanfragen auswirken kann (wenn Sie 1000 Seiten haben) benutzerdefinierte Weiterleitungen) - Sie verarbeiten stattdessen die Weiterleitungslogik spät in der Anforderung, dh. wenn Sie bereits festgestellt haben, dass die Seite nicht existiert. Auf diese Weise hat Ihre Umleitungslogik keine Auswirkungen auf die normale Nutzung der Website.

Wenn Sie nur eine Handvoll Weiterleitungen haben, spielt es keine Rolle, wie Sie dies tun. In beiden Situationen tritt weiterhin eine 301-Umleitung auf. (Obwohl das Verwalten von Weiterleitungen in einer Datenbank möglicherweise einfacher zu warten ist.) Wenn Sie jedoch 100, 1000 oder 10000 Weiterleitungen (aufgrund einer Standortmigration) haben, ist die Verwendung einer "benutzerdefinierten 404" wirklich die beste Wahl nur so weit zu gehen.

Eine "benutzerdefinierte 404" ist möglicherweise etwas irreführend (obwohl dies je nach Anwendung/CMS möglicherweise so implementiert ist). Sie führen Ihre Umleitungslogik nur dann aus, wenn Sie festgestellt haben, dass die URL dies nicht tut existieren auf der aktuellen Seite.

3
MrWhite