Apache Redirect Methoden

Der freie Open-Source Webserver Apache beherrschte eine Reihe von Methoden eine URL an ein anderes Ziel umzulenken. 

Hier sind die in der Praxis am meisten vertretenen:

↓ 1. Webseiten URLs oder Homepages mit dem HTML-Tag “refresh” umleiten
↓ 2. CGI Skripte zur Weiterleitung (mod_cgi)
↓ 3. PHP Skripte zur Weiterleitung
↓ 4. Javascript zur Weiterleitung
↓ 5. Apache Modul (mod_rewrite)
↓ 6. Apache Modul (mod_alias)
↓ 7. Apache 301 Umleitung unter Verwendung der Datei .htaccess

1. Webseiten URLs oder Homepages mit dem HTML-Tag “refresh” umleiten:

01 <META HTTP-EQUIV="Refresh" Content="0; URL=http://www.company.com/dir1/">

Dieses Kommando weist den Browser an die Seite mit der neuangegebenen URL zu aktualisieren. Damit wird aber nur die Seite weitergeleitet, nicht die komplette Domain.

01 <html>
02 <head>
03 <META HTTP-EQUIV="Refresh" Content="3; URL=http://www.company.com/dir1/">
04 </head>
05 <body>
06 This page will forward to http://www.company.com/dir1/ in three seconds.
07 <p>
08 Please update your links.
09 </body>
10 </html>

2. CGI Skripte zur Weiterleitung (mod_cgi):

Datei: httpd.conf

01 ScriptAlias / /var/www/cgi-bin/redirect-script/

Datei: /var/www/cgi-bin/redirect-script

01 #!/usr/bin/perl
02 
03 print "Status: 301 Moved\r\n" .
04       "Location: http://www.new-domain.com/\r\n" .
05       "\r\n";

oder:

01 #!/usr/bin/perl -w
02 use strict;
03 use CGI qw/:standard/;
04 print redirect('http://www.new-domain.com');

3. PHP Skripte zur Weiterleitung:

01 <?php
02 header("Location: http://www.new-domain.com/");
03 ?>

4. Javascript zur Weiterleitung:

01 <html>
02 <head>
03 <script language="Javascript" type="text/javascript">
04 <!-- Hide script
05 //<![CDATA[
06 window.location.href="http://www.new-domain.com/"     
07 //]]> End script hiding -->
08 </script>
09 </head>
10 </html>

5. Apache Modul (mod_rewrite):

Datei: httpd.conf

01 RewriteEngine On
02 RewriteRule /.* http://www.new-domain.com/ [R]

Leitet alle Referenzen der gesamten Domäne weiter.

6. Apache Modul (mod_alias):

Datei: httpd.conf
Domänenumleitung:

01 Redirect / http://www.new-domain.com/

oder:

01 Redirect permanent / http://www.new-domain.com/

Seitenweiterlietung:

01 Redirect /<i>web-page.html</i> http://www.new-domain.com/<i>destination-web-page.html</i>

Hinweis:

  • eine Redirect Direktive hat Vorrang vor einer Alias und ScriptAlias Direktive
  • andere RedirectOptionen:
    • temp (Fehler 302) Standard – temporärer Umleitungsstatus
    • seeother (Fehler 303) – Ressource wurde ersetzt
    • gone (Fehler 410) – Ressource wurde permanent entfernt

Bsp.: httpd.conf (mit mehreren Domänen, die umgeleitet werden:

01 <VirtualHost XXX.XXX.XXX.XXX:80>
02 ServerName directtolinux.com
03 ServerAlias www.directtolinux.com
04 ServerAlias direct-to-linux.com
05 ServerAlias www.direct-to-linux.com
06 ServerAlias digitalpenguins.com
07 ServerAlias www.digitalpenguins.com
08 Redirect permanent / http://www.yolinux.com/
09 </VirtualHost>

7. Apache 301 Umleitung unter Verwendung der Datei .htaccess:

Wenn man eine gesamte Webseite auf eine neue URL oder eine einzelne Seite permanent weiterleiten möchte und das für Suchmaschinen erkenntlich sein soll, dann sollte man eine 301 Umleitung verwenden. Das leitet dann auf einen neuen Server oder auf sich selbst aber zu einer anderen Domain um. Dies ist eine Variation zu Methode 6, die die mod_alias Umleitung verwendet, welche es dem Anwender erlaubt die Umleitung selbst per .htaccess Datei zu definieren.

01 RewriteEngine on
02 RewriteCond %{HTTP_HOST} ^www.pits-online.info
03 RewriteRule ^(.*)$ http://pits-online.info/$1 [R=permanent,L]

Diese Beispiel leitet http://www.pits-online.info auf http://pits-online.info/ weiter, um die Seite unter einer URL zusammenzufassen. Das kann auch das Web Logging vereinfachen, sollte dieses nicht mit beiden URLs zurecht kommen.


(Methode 5) Apache Konfiguration zur Umleitung mittels httpd.conf und .htaccess:

Datei: /etc/httpd/conf/httpd.conf (ältere Systeme verwenden access.conf)

Standard: Damit wird die Verarbeitung von .htaccess Dateien systemweit abgestellt.

01 <Directory />
02 AllowOverride None
03 </Directory>

oder für einen speziellen Ordnern:

01 <Directory <i>/home/domain/public_html</i>>
02 AllowOverride None
03 </Directory>

Angabe eines Ordners, der die Webseiten enthält, die Umgeleitet werden sollen:

01 <Directory /<i>root-directory-of-web-site-to-be-redirected</i>>
02 AllowOverride All
03 </Directory>

AllowOverride Parameter: AuthConfig, FileInfo, Indexes, Limits, Options

Datei: .htaccess

gesamte Domäne umleiten:

01 Redirect 301 /  http://www.new-domain.com/

Hinweis: Beachten Sie das “/” am Ende der umgeleiteten Domäne. Das ist erforderlich damit http://www.old-domain.com/page1.html an http://www.new-domain.com/page1.html umgeleitet wird.

bestimmte Seite umleiten:

01 Redirect 301 /old-page-1.html  http://www.newdomain.com/new-page-1.html
02 Redirect 301 /old-page-2.html  http://www.newdomain.com/new-page-2.html

Sie können die folgenden Direktiven verwenden:

  • 301: permanent
  • 303: seeother
  • 307: temp
  • 410: gone

Bsp.:

01 Redirect permanent /  http://www.newdomain.com/

Wenn eine fehlerhafte Direktive in der httpd.conf oder .htaccess verwendet wird, führt das zu Serverfehlern. Überprüfen Sie ihre Logdateien: /var/log/httpd/error_log.

HTTP 1.1 Redirect codes:
HTTP-Code Status Beschreibung
301 Permanent die Ressource ist permanent verschoben
303 SeeOther die Ressource wurde ersetzt und verweist auf die neue Ressource
305 UseProxy verwende Proxy, um auf die Seite zuzugreifen
307 Temp die Ressource ist temporär verschoben
410 Gone die Ressource ist permanent gelöscht

(Quelle: www.yolinux.com)

Schreibe einen Kommentar

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