301 Redirects für Posts, Kategorien, Seiten von der ursprünglichen Domain zur Sub-Domain von Multisite

Ich möchte meinen Blog von seiner ursprünglichen Domäne ( site1.com ) verschieben, um eine Unterdomäne in einer anderen Domäne zu werden, die eine Multisite-Installation ( sub1.site2.com ) ist.

Ich möchte auch die Permalink-Struktur auf der neuen Seite ändern, basierend auf einigen SEO-Vorschlägen, die ich online gelesen habe. Original verwendet /%year%/%monthnum%/%category%/%postname%/ als Permalink-Struktur. Ich möchte zu posts/%category%/%postname%/ als neue Permalink-Struktur auf sub1.site2.com wechseln . Ich ändere die Permalinks, weil ich zu Recht einigen SEO-Vorschlägen zustimme, dass sich Artikel als veraltet empfinden, wenn das Jahr in der URL prominent ist, obwohl der Inhalt meistens nicht zeitabhängig ist.

Wie verwende ich entweder .htaccess oder ein Plugin oder sogar PHP (wie in diesem Thread ), um sicherzustellen, dass Links von der alten Site (Posts, Category und andere Archive) nicht durchbrechen, besonders wegen der Änderung der Permalink-Struktur.

Ich habe versucht, ein paar zuvor beantwortete Fragen zu beantworten, bin aber wegen der Art ihrer spezifischen Fragen verwirrt. Auch die Regex-Syntax ist relativ neu für mich, deshalb möchte ich auf Leute verzichten, die wissen, was sie tun.

Solutions Collecting From Web of "301 Redirects für Posts, Kategorien, Seiten von der ursprünglichen Domain zur Sub-Domain von Multisite"

Sie können die Umleitung in einem Schritt oder in zwei Schritten durchführen. Die Ein-Schritt-Lösung leitet den gesamten Datenverkehr direkt zur richtigen URL auf dem neuen Server um, die Zwei-Schritt-Lösung leitet einfach den gesamten Datenverkehr auf den gleichen Pfad auf dem neuen Server um und lässt den neuen Server danach den richtigen Pfad ermitteln. Ich weiß nicht, ob es eine SEO-Strafe mit zwei Redirects gibt, vielleicht sollten Sie dies auf der verwandten Pro Webmasters Stack Exchange Seite fragen.

Umleitung in zwei Schritten

In zwei Schritten ist es wahrscheinlich am einfachsten einzurichten: Sie leiten den gesamten Verkehr zu site1.com/some/path zu sub1.site2.com/some/path und lassen die zweite Seite das richtige Ziel herausfinden, zum Beispiel mit der Umleitung Plugin .

Sie können die erste Weiterleitung in Apache mit einer einfachen Redirect Regel in Ihrer Serverkonfiguration konfigurieren ( .htaccess oder httpd.conf oder related):

 Redirect 301 / http://sub1.site2.com/ 

Sie könnten dies auch in PHP tun, aber für solch eine einfache Umleitung wäre es zu viel.

In einem Schritt redirect

Wenn Sie in einem Schritt redirect möchten, sollte Ihr alter Server den neuen Speicherort aller URLs kennen. Für Ihre Posts scheint das einfach zu sein (nur das Datum ist entfernt?), Aber was ist mit den Kategorie- und Archivseiten? Wie auch immer, Sie können dies auch in Apache mit einer RedirectMatch Regel und einem einfachen regulären Ausdruck tun. Im Grunde möchten Sie alle URLs, die mit einem Jahr und einem Monat beginnen, und dann einige Sachen zusammenbringen und sie auf die neue Seite und einige Sachen redirect. \d bedeutet “eine Ziffer”, {4} bedeutet “viermal wiederholt”,. bedeutet “irgendein Zeichen” und + bedeutet “ein oder mehrere Male wiederholt”. The () “sammelt” die Übereinstimmung, so dass wir sie als Ersatz verwenden können (als $1 ).

 RedirectMatch 301 /\d{4}/\d{2}/(.+) http://sub1.site2.com/posts/$1 

Sie können beide Regeln kombinieren, sodass die Posts in einem Schritt und alles andere in zwei Schritten umgeleitet wird. Die erste Regel, die übereinstimmt, wird ausgeführt, also platzieren Sie die Regex-Regel oben.