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)