Home
Navigation
Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen
SEO Welten
Buchempfehlungen
 

Server- und clientseitige Redirects: Mit PHP und per htaccess

Serverseitige-Weiterleitungen mit PHP, per htaccess und mod-rewrite

Übersicht / Seite - Weiterleitungen:

  1. per Meta-Tag (allgemeine Infos zur Benutzung)
  2. per JavaScript (clientseitige Redirects mit JavaScript)
  3. auf mobile Seiten (eine einfache Umleitung auf mobile Seiten)
  4. mit Bestätigung (Pseudo-Weiterleitung auf mobile Seite mit Bestätigung)
  5. mit PHP (serverseitige Redirects mit PHP)
  6. per htaccess (mit mod_alias und mod_rewrite)
  7. mit mod_rewrite (weitere Beispiele von Weiterleitungen per htaccess)
  8. URL-Rewriting (Umschreibung von URLs mit oder ohne QueryStrings)
  9. Weiterleitung statt 404 (... bei fehlerhaften Aufrufen oder von alten URLs)

Weiterleitungen mit PHP

Weiterleitungen sind mit PHP und der Funktion header() eigentlich recht einfach zu realisieren. Wichtig ist nur, dass vor der Weiterleitung weder Leerzeichen noch irgendwelche HTML-Tags ausgegeben werden. Bei Verwendung von Charset UTF-8 ist darauf zu achten, dass die Dateien ohne BOM (Byte Order Mark) gespeichert werden. Wird eine Datei mit BOM gespeichert, so wird zu Beginn der Datenübertragung eine Kennung zur Definition der Byte-Reihenfolge vom Server gesendet, mit der einige Browser nichts anzufangen wissen und diese dann als Leerzeile oder mit einigen wenigen unerwünschten Sonderzeichen ausgeben. Eine PHP-Weiterleitung sollte mit exit beendet werden, um sicherzustellen, dass nachfolgender Code nicht mehr ausgeführt wird.

Weiterleitung mit PHP, erstes Beispiel:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/neue-seite.php");

exit;
?>

Um eine "saubere" 301 Weiterleitung zu realisieren, sollte in der ersten Zeile der gewünschte HTTP-Statuscode mitgeteilt werden. Wie den beiden Beispielen zu entnehmen ist, gibt es zwei unterschiedliche Schreibweisen. In welchen Fällen die erste oder die zweite Variante zu verwenden ist, können Sie der Dokumentation unter php.net/manual/ entnehmen oder Sie probieren es einfach aus.

Weiterleitung mit PHP, zweites Beispiel:

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.example.com/andere-seite.php");

exit;
?>


Weiterleitung per htaccess und mod_alias

Für serverseitige Weiterleitungen bietet sich vielfach die Möglichkeit an, diese als Direktiven in einer htaccess Konfigurationsdatei zu definieren. Für einfach gestrickte Um- und Weiterleitungen reicht dabei eine Zugriffsmöglichkeit auf mod_alias aus, mod_rewrite ist in diesem Fall nicht erforderlich.

Im ersten Beispiel werden alle aufgerufenen URLs, gleich ob diese auf Seiten oder Unterseiten verweisen von Domain A verweisen, zu Domain B (im Beispiel www.example.com) weitergeleitet.

Redirect per htaccess, erstes Beispiel:

RedirectPermanent / http://www.example.com/

Im zweiten Beispiel wird nur die aufgerufenen alte-seite.php bzw. deren Pfad zu der neue Adresse weitergeleitet. Ob als Schreibweise RedirectPermanent oder Redirect 301 verwendet wird, sollte bislang nicht relevant sein, da der Apache oder mod_alias die Syntax von beiden Schreibweisen als HTTP-Statuscode 301 interpretiert (Irrtum und Änderungen vorbehalten).

Redirect per htaccess, zweites Beispiel:

Redirect 301 /alte-seite.php http://www.example.com/neue-seite.html

Mit RedirectMatch lassen sich auch Weiterleitungen unter Verwendung von regulären Ausdrücken realisieren. Im folgenden Beispiel sollen nur Aufrufe von PHP-Dateien auf namensgleiche Dateien mit der Extension html weitergeleitet werden.

Beispiel: /diese-datei.php wird weitergeleitet auf http://www.example.net/diese-datei.html

RedirectMatch per htaccess:

RedirectMatch 301 ^/([a-zA-Z0-9_-]+)\.php$ http://www.example.net/$1.html


Weiterleitung per htaccess und mod_rewrite

Das Apache Modul mod_rewrite ermöglicht dem Webmaster sehr viele Möglichkeiten, auf die Konfiguration eines Servers per htaccess Einfluss zu nehmen. Zu den Stärken der RewriteEngine gehört die Verarbeitung von regulären Ausdrücken, ebenso wie die Verarbeitung von durch den Webmaster definierten Bedingungen (Konditionen) und Anweisungen.

Im ersten Beispiel wurde als Bedingung definiert, dass alle aufgerufenen URLs, deren Host-Komponente mit example beginnt und mit net endet (^ Beginn eines Musters und $ Ende des Musters) nach www.example.net weitergeleitet werden.

Definieren einer Standard-Domain, erstes Beispiel:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.net$ [NC]
RewriteRule ^(.*)$ http://www.example.net/$1 [L,R=301]

Im zweiten Beispiel wurde example.net ohne vorangestelltes www. als Standard-Domain definiert.

Definieren einer Standard-Domain, zweites Beispiel:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.example\.net$ [NC]
RewriteRule ^(.*)$ http://example.net/$1 [L,R=301]

Um die vielfältigen Möglichkeiten der RewriteEngine voll ausschöpfen zu können, ist es zwingend erforderlich, die Syntax von regulären Ausdrücken zu verstehen.

Browser-Weiterleitungen | Auf mobile Seiten « / » Weitere Beispiele

 
Navigation

Finden und
gefunden werden ...


Zukunftsaussichten


- Optimierung -

 

Webcoding

Übersicht


Web Services


Tutorials &
diverse Listings

und vieles mehr...


Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen