PHP: Teile einer Domain umleiten

Stellen wir uns folgende Situation vor:
Ihr betreibt seit einiger Zeit eine gut laufende Webseite unter Domain A. Diese ist bei Google recht gut gelistet und somit auch viele Links der Seite bei Google bekannt. Womöglich sind auch Unterseiten irgendwo anders verlinkt.

Nun, aus welchen Gründen auch immer – diese wollen hier nicht diskutiert werden, soll diese Seite ab sofort unter Domain B erreichbar sein und Domain A eine Art Portalseite – unter anderem auch für das schon bestehende Projekt – werden. Was passiert mit den ganzen bei Google und auf anderen Seiten gelisteten Links? Bei einem “normalen” Domainwechsel würde mal einfach alles per 301 umleiten, aber dann wäre auch die neue Portalseite nicht sichtbar, sondern würde ganz stumpf ebenfalls umgeleitet werden.

Hier hilft eine kleine Kombination aus .htaccess und PHP weiter um sich mittels eines kleinen Tricks zu behelfen.
Es sollte klar sein, das nun erst ein mal alle Links einen 404 erzeugen. Klar, sind ja auf der neuen Portalseite nicht mehr da. Dies kann man mit einem kleinen PHP Script abfangen.

1
2
3
4
5
6
7
<?php
/**
* http://domain-a.de/404-redir.php
*/

header("HTTP/1.1 301 Moved Permanently");
header("Location: http://domain-b.de" . $_SERVER['REQUEST_URI']);
?>

Dieses Script wird nun in der .htaccess von Domain A als Ziel aller 404-Fehler eingetragen.

1
ErrorDocument 404 /404-redir.php

Damit wird nun alles was unter Domain A nicht existiert an die 404-redir.php übergeben und somit auf Domain B weitergeleitet. Natürlich sollte man auf Domain B ebenfalls eine anständige Fehlerseitenschaltung aufbauen, da nun diese auch für echte 404-Fehler zuständig ist.

Werbung

WordPress SEO Plugin

Über H.-Peter Pfeufer

Ich bin Webentwickler/ -programmierer aus Leidenschaft, WordPressbegeistert und ab und an auch mal ein netter Mensch.
Vor allen schreibe ich über alles was mit den Themen Webentwicklung/ -programmierung und WordPress zu tun hat. Nebenher auch mal einige Gedanken zu allgemeineren Themen.

Kategorie(n): PHP
Tags: , , ,
Setze ein Lesezeichen auf den Permalink.

5 Antworten auf PHP: Teile einer Domain umleiten

  1. [...] nicht weiterzuleitende des neuen? H.P. Pfeufer stellt für dieses Problem in seinem Artikel “PHP: Teile einer Domain umleiten” eine schöne und leicht umzusetzende Lösung vor. Man kann es in bestimmten Fällen aber [...]

    • Kai sagt:

      Gute Arbeit. Danke für deine schnelle Hilfe nochmal Smilie: ;)

    • Hallo Kai,

      Kein Thema, immer wieder gerne.

      Hody sagt:

      Hallo,
      Ich habe meine alte HTML Seite auf WP umgestellt. Die neue Seite ist seit gestern unter www.tribe-online.de online, die alte (html) Seite noch als Archiv unter www.archive.tribe-online.de zu finden.

      Nun habe ich noch ein Problem mit 404 Seiten und leider kein Plugin gefunden, welches dieses
      lösen könnte, es gibt nur eines „Redirection“ das $S unterstützt aber das scheint defekt zu sein.

      Das Problem ist nämlich:
      Ich möchte nur bestimmte Verzeichnisse weiterleiten

      Die Links hatten die Syntax:

      seite/rubrik/unterrubrik/aktuell/artikel.html

      jetzt müsste die URL aber lauten:

      archiv/seite/rubrik/unterrubrik/aktuell/artikel.html

      Kann man das irgendwie so weiterleiten, das hinter dem Pfad eine Wildcard steht sowas wie $S oder so? Ich bräuchte das für drei oder vier Pfade. Vielleicht über die wpconfig oder die htacess

      Vielen Dank

      • Holla Hody,

        Ja, prinzipiell ist das per .htaccess möglich. Dort heißt der Platzhalter allerdings nicht $S sondern $1 und so weiter. Vielleicht hilft Dir dieser Artikel etwas weiter > http://blog.ppfeufer.de/verzeichnis-auf-subdomain-umleiten/

        Dort wird das Grundlegende erklärt. Wichtig ist hierbei, die .htaccess muss da liegen, wo die alten Daten herkommen, also von wo aus umgeleitet werden soll. Dann sollte es mit ein paar kleinen regulären Ausdrücken machbar sein.

    Hinterlasse eine Antwort

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

    *

     

    Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>