Fremde IP-Adressen per .htaccess umleiten
In diesem Beitrag findet ihr den Code um fremde IP-Adressen per .htaccess umzuleiten
Ab und zu ist man als Webdesigner gezwungen eine Seite gründlich zu überarbeiten. Wie Ihr höchst wahrscheinlich mitbekommen habt, trifft das auch auf diese Seite hier zu und so habe ich vor einigen Tagen ein Relaunch durchgeführt. So ein Relaunch ist natürlich immer mit gewissen Risiken verbunden – denn auch wenn alles noch so gut geplant und vorbereitet wurde – schief gehen kann immer etwas.
Damit die Ausfälle möglichst gering sind und Seitenbesucher sowie Suchmaschinen-Bots (!) während des Umzugs keine toten Links vorfinden empfiehlt es sich fremde IP-Adressen auf eine alternative Seite umzuleiten. Dafür nutzen wir einen 302-Redirect per .htaccess.
Was ist eigentlich ein Redirect 302?
Das Umleiten von Adressen kann zur schwerwiegenden und unwiderruflichen Fehlern im Suchmaschinen-Ranking führen. Aus diesem Grund möchte ich kurz den Unterschied zwischen einem 301 und einem 302-Redirect erklären. Der 301-Redirect ist in unserem Beispiel irrelevant – da es aber häufig zu wirklich üblen Fehlern kommt, muss ich ein wenig ausholen.
Beide Arten des Redirect leiten eine URL auf eine andere Webadresse um. Entscheidend ist was in den Suchmaschinen passiert. Während der 301 Redirect eine URL dauerhaft durch eine andere URL ersetzt dient der 302 Redirect dazu eine Adresse nur temporär umzuleiten. In diesem Fall sind beide Adressen gültig. Bei Verständnis hilft auch der offizielle HTTP-Status-Code:
- Redirect 301 – Moved Permanently
- Redirect 302 – Found
- Liste aller HTTP-Statuscodes auf Wikipedia
Wenn Ihr die Besucher während der Wartungsarbeiten an Eurem Blog nun also auf eine alternative Seite umleiten möchtet, so muss hier unbedingt der 302 Redirect gewählt werden. Ansonsten zerstört Ihr ggf. Suchmaschinen-Links dauerhaft.
Fremde IP-Adressen umleiten
Eine einfache Möglichkeit fremde Besucher umzuleiten ist eine Auswahl über die IP-Adresse. Dafür müsst Ihr zunächst die eigene IP kennen; anschließend werden alle anderen Besucher umgeleitet. Eure eigene IP-Adresse erfahrt ihr zum Beispiel hier:
Nun müsst Ihr die .htaccess
bearbeiten. Diese Datei befindet sich im Root (Stammverzeichnis) Eurer Website.
Wenn Ihr bisher keine .htaccess
nutzt, so erstellt mit einem Texteditor eine unformatierte neue Datei und nennt diese .htaccess
. In diese Datei fügt Ihr nun den nachfolgenden Code ein.
.htaccess
-Dateien können je nach Betriebssystem ausgeblendet werden. Stellt also zunächst sicher, dass Ihr alle versteckten Dateien im System seht.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !/wartung.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /wartung.html [R=302,L]
</IfModule>
Achtet darauf sowohl die IP-Adresse in Zeile 3 als auch das Ziel der Weiterleitung in Zeile 4 und 6 anzupassen!
Mehrere IP-Adressen erlauben
Wenn mehrere IP-Adressen auf die Seite Zugriff haben sollen – also beispielsweise Ihr und der Kunde – so hilft Euch folgender Code weiter. In diesem Fall findet keine Weiterleitung statt. Es wird der Status 403 (Forbidden) auf eine alternative Adresse umgeleitet.
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 123.456.789
allow from 123.456.789
</LIMIT>
ErrorDocument 403 /wartung.html
<Files wartung.html>
order allow,deny
allow from all
</Files>
Hi,
gibt’s denn auch eine Möglichkeit eine bestimmte IP Adresse auf einen bestimmten Ordner umzuleiten und alle anderen IP Adressen auf einen anderen ordner umzuleiten?
danke lg
Würde mich auch interessieren. Leider schlugen einige Tests fehl :-(
Mein Gedanke: statt einer 403-Meldung lieber auf eine bestimmte Datei lenken.
Alle IP’s bis auf einem Land werden geblockt, leider klappt es ja nur mit der 403 statt einer eigenen.
Danke für den Tipp. Gleich umgesetzt
…Es wird der Status 403 (Not Found) … sollte heissen 403 (Forbidden)!?
Du hast Recht, das war natürlich falsch im Beitrag. Ich habe es aktualisiert. Vielen Dank für die Info.
Funktioniert bei mir leider nicht ganz.
Es werden zwar anfragen von Rechnern die nicht die eingetragene IP auf die richtige Seite weitergeleitet, kann ich selbst nicht auf die Seite die sich im Wartungsmodus befindet zugreifen. Folgende Fehlermeldung: „Forbidden
You don’t have permission to access / on this server.“
Eine Idee was ich falsch mache?
Perfekt! Nie mehr ein ungutes Gefühl, wenn man die Daten Live stellt.
Hast mir mal wieder sehr geholfen :)