This page intentionally left blank
.htaccess: Seite von externem Zugriff schützen

Ich sperre schon lange einige meiner privaten und beruflichen Seiten mit Hilfe einer .htaccess-Datei.
Dazu wird – wie den meisten bekannt sein sollte – eine Textdatei mit dem Namen .htaccess in das Webserver-Verzeichnis, für welches (und dessen Unterverzeichnisse) die Beschränkung gelten soll.
Diese Datei sieht in etwa so aus:

order deny,allow
deny from all
allow from 172.17.0.0/255.255.0.0

Hiermit haben nur Benutzer aus dem internen Netzwerk Zugriff, die eine 172.17.*.*er-IP-Adresse haben.

Hatte auch lange gut funktioniert, aber irgendwas muss zwischenzeitlich mal in der Firma umgestellt worden sein, so dass Zugriffe von außerhalb des Netzwerkes (also aus dem Internet; der gesamte Webserver ist im Internet aufrufbar, da er noch weitere Dienste anbietet) für den Webserver eine IP-Adresse haben, die wie eine interne IP-Adresse aussieht.

Ich habe mir ausspucken lassen, was die $_SERVER-Variable unter php so alles beinhaltet, wenn man von außen zugreift. Gemeinsamer Nenner war HTTP_VIA mit einer bestimmten IP.
Somit konnte ich mein Problem nun mit einer RewriteRule in der .htaccess-Datei lösen.

Die vorherigen Einschränkungen habe ich weiterhin drinnen gelassen, dazu verwende ich noch die RewriteEngine, um alle Anfragen, die mit einem HTTP_VIA mit IP-Adresse 192.168.248.5 rein kommen, auf http://www.apfel-z.net umzuleiten.

RewriteEngine On
order deny,allow
deny from all
allow from 172.17.0.0/255.255.0.0

RewriteCond %{HTTP:VIA} 192\.168\.248\.5
RewriteRule ^(.*)$ http://www.apfel-z.net [R=301,L]

Alternative könnte man statt umzuleiten als RewriteRule einen 403er-Status-Code ("Keine Berechtigung") senden:

RewriteRule ^(.*)$ - [R=403,L]

 
Google+