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
403
er-Status-Code ("Keine Berechtigung") senden:

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