Fremde IP-Adressen per .htaccess umleiten

htaccess-redirect-via-ip

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.

WordPress-Themes

Entwickeln und gestalten

Beim Verlag kaufen
Download, DVD

Bei Amazon kaufen
DVD

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:

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 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>

Warum kein WordPress-Plugin?

Um Besucher während geplanter Downtimes auf eine alternative Seite umzuleiten gibt es natürlich auch WordPress-Plugins. Ich persönlich bevorzuge jedoch die hier beschriebene Methode. Die Plugins fragen in der Regel ab ob der User bei WordPress eingelogged ist oder nicht. Somit ist es unmöglich die Bereiche der Website zu gestalten die nur ausgeloggte Besucher sehen.
Der Vollständigkeit halber möchte ich Euch trotzdem das Plugin einmal verlinken.

code von wpbeginner