Was ist der effizienteste (dh weniger serverintensive) Weg für 301 Weiterleitungen?

Ich würde gerne wissen, ob es einen Unterschied in Bezug auf Effizienz (dh weniger Verwendung von Server-Ressourcen) bei der Durchführung von 301 Weiterleitungen mit .htaccess oder die Verwendung der wp_safe_redirect-function von WordPress? (das würde über ein Plugin implementiert werden).

Es macht mir nichts aus, die Weiterleitungen manuell in die .htaccess-Datei zu schreiben. Aber wenn es keinen größeren Overhead mit einem Plug-In gibt, der die Redirects ausführt (mit wp_safe_redirect), dann würde ich diese Route der Einfachheit halber (für andere Site-Administratoren) lieber gehen.

Kann jemand vorschlagen, welche dieser Methoden die geringste Auswirkung auf den Server haben würde?

Nachgedanken / Antwort

In Anbetracht der von CYBMETA und Mark Kaplun gemachten Punkte habe ich den Eindruck, dass die Antwort auf meine Frage keine Schwarz-Weiß-Frage ist. Ich verstehe jetzt, dass es von vielen Faktoren abhängt, und in den meisten Anwendungsszenarien mag es praktisch keinen Unterschied machen, ob ich .htaccess oder ein Plug-In verwende.

Ein Plug-In bietet Benutzerfreundlichkeit, hat aber einen gewissen zusätzlichen Aufwand für die Ausführung von PHP und für den WordPress-core, der zweimal geladen wird, um mit der Umleitung umzugehen, und dann mit dem Rendern der Seite fertig zu werden. Ich weiß, dass dies auf einem angemessen konfigurierten Server wahrscheinlich keinen signifikanten performanceseinbruch erzeugen wird, es sei denn, die Website ist sehr beschäftigt und die umgeleiteten URIs sind für eine signifikante Anzahl der Seitenzugriffe verantwortlich. Ich verstehe, dass die Verwendung von .htaccess für die Umleitungen bedeutet, dass zusätzliche Zeilen in der .htaccess-Datei für jede Ressourcenanforderung an die Site analysiert werden müssen, unabhängig davon, ob es sich um die Umleitungs-URIs handelt oder nicht. Auf einem adäquaten Server sollte dies wiederum Auswirkungen auf die reale Welt haben. Die Verwendung eines Plug-Ins ist für den Endbenutzer sicherlich bequemer, wenn zahlreiche Redirects im Laufe der Zeit eingerichtet werden müssen.

In Anbetracht dieser Erkenntnisse kann ich keine Antwort als “akzeptierte Antwort” betrachten. Ich akzeptiere sie beide für sich und habe sie entsprechend gekennzeichnet.

Solutions Collecting From Web of "Was ist der effizienteste (dh weniger serverintensive) Weg für 301 Weiterleitungen?"

Mit .htaccess können Sie die Umleitung ohne eine einzige PHP-Zeile durchführen. Die Verwendung von WordPress für Umleitungen bedeutet, dass WordPress engine geladen ist, dann wird der Benutzer umgeleitet und WordPress wird wieder am neuen Ort geladen. In der Regel erfordern .htaccess-Umleitungen weniger Serverressourcen. Wenn Sie keine Interaktion mit WordPress benötigen, um zu wissen, wann und wo die Umleitung ausgeführt werden soll, verwenden Sie .htaccess.

Wie bei allen performancesproblemen lautet die Antwort wahrscheinlich “es kommt darauf an”

Und hier kommt es auf das Verhältnis von “normalem” Traffic zu dem, der Redirect benötigt, an.

Die Sache mit htaccess ist, dass bei jeder Anfrage die Datei gelesen und geparst werden muss und einige URL-Übereinstimmungen gemacht werden müssen. Mit der naiven Implementierung von 301 in htaccess, von der Art von “Oh, nur eine Zeile irgendwo in der Datei, wo Sie wollen”, bedeutet es, dass Zeit verschwendet wird, auch wenn Bilder serviert werden.

Auf der PHP-Seite hängt es davon ab, wie gut Ihre Redirect-Implementierung ist, und wahrscheinlich sind sie alle nicht optimal. Wenn Ihr Server PHP7 mit apcu-basiertem Objekt-Caching so ausführt, dass für die Erkennung und Behandlung einer Weiterleitung kein DB-Zugriff erforderlich ist, kann die Implementierung sehr schnell sein.

Nehmen wir nun an, dass die php-Lösung 10k mal langsamer ist als die htacces. Laut einigen Statistiken – http://www.sitepoint.com/average-page-weight-increases-15-2014/ eine durchschnittliche Seite tut etwa 100 HTTP-Anfrage, die jeder von ihnen bietet die zusätzliche “Strafe” der htaccess Änderung . Mit diesen Zahlen, wenn Ihre Weiterleitung weniger als 1% der Seiten bedient wird, wird die PHP-Lösung eine bessere performance haben.

Aus Gründen der Stabilität und der Einfachheit der Entwicklung und Wartung sollten Sie htaccess-Änderungen nach Möglichkeit vermeiden. Um mit htaccess-Lösung zu gehen, müssen Sie beweisen, dass es viel besser ist, etwas, das nicht einfach zu tun ist, und Sie könnten mehr Aufwand dafür verschwenden als Aufwand, um Weiterleitungen auf eine weniger optimale Art und Weise zu bedienen Alles, was Sie erreicht haben, ist eine CPU-Auslastung von durchschnittlich 49% anstelle von 50%.

Solche Micro-Optimierungen sind nur für Facebook und Google wichtig, der Rest der Seiten hätte genug Traffic für ein solches Problem gehabt, um ein auffälliges Problem zu sein.