HP-User: Automatische Weiterleitung auf Domainebene

Guten Abend

Da ich nicht genau weiß, ob ich das hier unter webhosting, server oder html posten soll, kommt es halt hier rein.

Habe zwei domains gemietet:
1. www.beispielseite.de
2. www.beispiel-seite.de

Wie man sieht läuft das unter Gebietsschutz *g*

So, jetzt soll (natürlich ohne großen Aufwand) folgendes passieren. Wenn ein Seitenbesucher versehentlich www.beispiel-seite.de eingibt, soll der auf www.beispielseite.de umgeleitet (oder weitergeleitet) werden.

Das könnte man mit JavaScript machen:
<script type="text/javascript">
  window.location.href='http://www.beispielseite.de/';
</script>

Auch Meta soll funktionieren:
meta http-equiv="refresh" content="5; url=http://www.beispielseite.de/">

Das geht doch bestimmt auch serverseitig, indem man ein kleines Script baut, das aufgerufen wird.

Gibt es eventuell auch eine Möglichkeit, dem Server generell zu sagen, daß alle Anfragen, die über www.beispiel-seite.de herein kommen _direkt_ auf www.beispielseite.de weitergeleitet werden. Quasi als Voreinstellung, ohne Rechenleistung durch serverseitige Skripts zu verbrauchen. - Nur so als Idee.

Gruß HP-User

  1. Gibt es eventuell auch eine Möglichkeit, dem Server generell zu sagen, daß alle Anfragen, die über www.beispiel-seite.de herein kommen _direkt_ auf www.beispielseite.de weitergeleitet werden.

    Ja. Wenn du verraten würdest, welchen Webserver (Apache, IIS, nginx, …) du verwendest, wäre auch eine konkrete Lösung möglich.

    1. Abend

      In PHP:
      <?php
      // Permanent redirection
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: http://www.beispielseite.de");
      exit();
      ?>

      In Perl:
      $q = new CGI;
      print $q->redirect(" http://www.beispielseite.de/ ");

      Bei Perl würd ich eine index.shtml schreiben mit Inhalt:
      <!--#exec cgi="/cgi-bin/redirect-program.pl" -->

      Wie geht das bei PHP?

      Zur Ausstattung des ausgewählten Hosters gehört das hier:
      http://www.kreativmedia.ch/de/webhosting/sharedhosting/leistungsumfang.php?type_of=technologien

      Zur Serverfrage:
      Ist ein LAMP-System = (Linux, Apache, MySQL, PHP) mit Python und Perl ergänzt.

      Gruß HP-User

      1. In PHP:
        <?php
        // Permanent redirection
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: http://www.beispielseite.de");
        exit();
        ?>

        Bei Perl würd ich eine index.shtml schreiben mit Inhalt:
        <!--#exec cgi="/cgi-bin/redirect-program.pl" -->

        Wie geht das bei PHP?

        Schriebst du doch bereits oben, nur, dass die Datei index.php heissen sollte.

        Beide Wege, der mit Perl und der mit PHP, sind aber nicht die günstigsten für dein Problem.

        a) Sie decken nur die URLs bzw. Dateien ab, in die du den Code einträgst. Ist das nur die index.xy, wird zwar uner.wünscht/ umgeleitet, aber nicht uner.wünscht/blafasel.html.

        b) Da du Hosting benutzt, hast du vermutlich keine Möglichkeit, uner.wünscht und er.wünscht in getrennte Verzeichnisse zu legen. Jede Anfrage an er.wünscht/ wird dann zwar nach er.wünscht/ umgeleitet, jede Anfrage an er.wünscht/ aber auch, da selbes Verzeichnis. Ergebnis: Endlosschleife. Es fehlt also in deinen beiden Skripten eine Domainprüfung.
        Hast du die Möglichkeit, beide Domains zu trennen, bleibt immer noch Punkt a).

        Lösungen:
        1. Mit getrennter Einrichtung von uner.wünscht und er.wünscht

        Trage in die Konfiguration (beim Hosting ist dafür nur /.htaccess möglich) von binde-str.ich die Zeile

        Redirect permanent / http://er.wünscht/

        ein. Damit werden sämtliche (!) Anfragen an Pfade unterhalb dieser Domain an den jeweiligen Pfad auf der bindestrichlosen Domain weitergeleitet. uner.wünscht/ landet auf er.wünscht/ und auch uner.wünscht/bla/fasel/ganz/tief.png würde an er.wünscht/bla/fasel/ganz/tief.png weitergeleitet.

        Auf die gleiche Weise lässt sich, nebenbei bemerkt, das www. erschlagen. Einfach sämtliche unerwünschte Domains, die zur erwünschten Domain umleiten sollen, auf das "Umleiteverzeichnis" konfigurieren.

        Dies ist die resourcenschonendste Variante (auch wenn man über die gegenüber Lösung 2 unten gesparten Millisekunden sicherlich getrennter Meinung sein).

        2. Beide Domains, uner.wünscht und er.wünscht zeigen auf dasselbe Verzeichnis

        Da alle Anfragen an alle Domains in demselben Verzeichnis landen, muss hier nochmals separat geprüft werden, welche Domain angesprochen wurde. In die /.htaccess gehören folgende Zeilen:

        RewriteEngine on
        RewriteCond %{HTTP_HOST} uner.wünscht$
        RewriteRule (.*) http://er.wünscht/$1 [redirect=301]

        Mit RewriteCond wird geprüft, ob der Browser eine Domain angesprochen hat, die auf uner.wünscht endet (endet, das Dollarzeichen am Ende des Musters beachten! - greift daher auch bei www.uner.wünscht). Falls dem so ist, leitet RewriteRule die Anfrage an den jeweiligen Pfad unter er.wünscht weiter.
        Weitere Domains können mit weiteren RewriteCond-Zeilen geprüft werden. Die Zeilen müssen jeweils mit [ornext] oder-verknüpft werden:

        RewriteEngine on
        RewriteCond %{HTTP_HOST} uner.wünscht$ [ornext]
        RewriteCond %{HTTP_HOST} www.er.wünscht$
        RewriteRule (.*) http://er.wünscht/$1 [redirect=301]

        1. Hi Ottokar

          Es war sogar noch viel einfacher:

          Das Plesk-Tool des Hosters stellt eine solche Funktion per Checkbox bereit.
          Unter "redirect" auf xxx kann man das einstellen.

          Plesk ist schon sehr vielseitig. Ich denke das ich da nur einen Bruchteil der Möglichkeiten kenne.

          Gruß HP-User

  2. Nabend,

    Gibt es eventuell auch eine Möglichkeit, dem Server generell zu sagen, daß alle Anfragen, die über www.beispiel-seite.de herein kommen _direkt_ auf www.beispielseite.de weitergeleitet werden. Quasi als Voreinstellung, ohne Rechenleistung durch serverseitige Skripts zu verbrauchen. - Nur so als Idee.

    Gugel doch mal Redirect permanent und htaccess.

    Gruß, Eisbrecher