Apache – HTTP-Weiterleitung konfigurieren

Möchte man den Apache-Webserver beibringen, eine Webseite ab einem bestimmten Pfad oder direkt vom Rootverzeichnis weg umzuleiten, so gibt es mehrere Wege das Ziel zu erreichen.

Ein Weg wäre zum Beispiel, eine .html-Datei zu erstellen, die ein wenig HTML enthält:

<html>
  <head>
    <meta http-equiv="refresh" content="0; URL=http://www.meine.domain/">
  </head>
  <body>
  </body>
</html>

I. d. R. kann sogar alles bis auf <meta… weggelassen werden und die Umleitung funktioniert trotzdem.

Ruft ein Browser diese Seite auf, wird er per HTML angewiesen, eine neue Seite zu laden.

 

Der elegantere Weg ist, die Umleitung direkt im HTTP-Header zu integrieren, ohne das der Browser zuerst HTML interpretieren muss.
Dafür muss lediglich eine Zeile in der vhost-Konfiguration hinzugefügt werden:

RedirectMatch 301 /.* http://www.main.domain/

301 ist hier der HTTP-Code, der dem Browser mitteilt, dass das eine Umleitung ist.

 

Hier gibt es mehrere Codes mit verschiedenen Bedeutungen:

301 – Moved permanently
Die angeforderte Ressource befindet sich zukünftig immer unter der angegebenen Adresse
Hiermit kann zum Beispiel auch Google aber auch anderen Suchmaschinen mitgeteilt werden, dass die Seite umgezogen ist. Somit kann Google oder eine andere Suchmaschine die URL entsprechend im Suchindex anpassen.

302 – Found
Die angeforderte Ressource ist nur temporär unter der anderen angegebenen Adresse zu finden.
Findet eine Suchmaschine diesen Statuscode vor, so wird der Eintrag im Suchindex nicht angepasst und der alte bleibt bestehen. Sehr hilfreich, wenn man nur vorübergehend etwas umleiten möchte.

303 – See Other
Weist den Client darauf hin, dass die ursprüngliche Datei durch eine andere ersetzt worden ist.

410 – Gone
Dieser Statuscode teilt dem Client mit, dass die angegebene Ressource nicht mehr verfügbar ist und diese auch nicht mehr unter einer anderen URL publiziert wird.
Erhält eine Suchmaschine diesen Code, wird sie die entsprechende Seite aus ihrem Index entfernen

2 Kommentare zu “Apache – HTTP-Weiterleitung konfigurieren

  1. Super wären noch Info’s bezüglich Rewrite Rules im Apachen. Wie z.B. ein redirect ausgeführt werden kann, ohne das sich die URL ändert.
    Wie z.B. hier:
    # Internally forward /Page/abc123 to /page.cfm?pagevar=abc123
    RewriteRule ^Page/(.*)/?$ /page.cfm?pagevar=$1 [QSA,NC,L]

    Nur als Anregung, wie der Blogpost sinnvoll erweitert werden könnte.
    Habe das in letzter Zeit sehr oft gebraucht 🙂

    1. Hallo Daniel.

      Vielen Dank für deine Ergänzung!

      Soweit ich weiß, kann man mit RewriteRules aber nicht auf andere Webseiten umleiten, die nicht im selben Webspace liegen.
      Wenn alles unter der selben Domain passiert ist das jedoch definitiv die beste Lösung, um die URL schöner zu gestalten.

Schreibe einen Kommentar zu Daniel Antworten abbrechen

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