In dieser Anleitung wird erklärt, wie man auf einem ecomDATA Webserver einen GeoBlock einrichtet.
Die Grundvoraussetzung hierfür ist die Verwendung des Litespeed Webservers. Wenn Sie eine Shop-Hosting, Web Hosting oder einen Managed JTL-Shop haben, ist Litespeed automatisch inkludiert.
Bei Managed Web Server muss geprüft werden, ob Sie Litespeed haben. Das können Sie über das Kundencenter im Produkt überprüfen. Navigieren Sie hierfür im Produkt zu „Konfigurierbare Optionen“.

Wenn man diesen hat, gibt es die Möglichkeit über die .htaccess einen GeoBlock einzurichten und Bot Angriffe gezielter abzuwehren. Wir verwenden hierbei die IP-Datenbank von IPInfo, um die Länder zu bestimmen.
Die Datenbank wird regelmäßig von uns aktualisiert, um beste Funktionalität zu gewährleisten.
Einrichtung des GeoBlocks
Die Steuerung des GeoBlocks erfolgt über die .htaccess der Website. Man kann hier konfigurieren, ob Länder blockiert werden, Kontinente erlaubt, bestimmte Bots aus bestimmten Kontinenten etc.
Wichtig ist, dass die Sperre ganz oben in der .htaccess hinterlegt ist!
Nachfolgend einige Beispiele, wie die Konfiguration erfolgt und nach welchem Prinzip man den Block erweitern kann.
Beispiel 1: Zugriffe aus einem bestimmten Land sperren:
<IfModule mod_geoip.c>
# From Russia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 1.1: Zugriffe aus 3 bestimmten Ländern sperren:
In diesem Beispiel verwenden wir das Pipe-Symbol: |
, wie in RU|SG|JP
. Dieses Symbol bedeutet „ODER“. In diesem Fall blockieren wir den Zugriff, wenn er aus Russland ODER Singapur ODER Japan kommt.
<IfModule mod_geoip.c>
# From Russia OR Singapore OR Japan
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|SG|JP)$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 2: Zugriffe aus einem Kontinent sperren:
<IfModule mod_geoip.c>
# From South America
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} ^SA$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 2.1: Zugriffe aus 2 Kontinenten sperren:
Wir verwenden hier dieselbe ODER-Logik unter Verwendung des „Pipe“-Symbols:
<IfModule mod_geoip.c>
# From South America OR Africa
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} ^(SA|AF)$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 3: Zugriffe aus Lateinamerika, Afrika, Russland und Singapore sperren:
In diesem Beispiel müssen wir die „ODER“-Logik anwenden, da es logisch nicht möglich ist, dass jemand aus Russland UND Afrika kommt. Daher blockieren wir den Zugriff, wenn er aus Russland ODER Afrika kommt.
Es ist nicht möglich, das Pipe-Symbol wie zuvor zu verwenden, da wir uns auf zwei verschiedene Variablen beziehen, „Land (GEOIP_COUNTRY_CODE
)“ und „Kontinent (GEOIP_CONTINENT_CODE
)“.
<IfModule mod_geoip.c>
# From Russia OR Singapore OR...
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|SG)$ [OR]
# From South America OR Africa
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} ^(SA|AF)$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Ab hier wenden wir eine andere Logik an. Zuvor haben wir den Zugriff auf bestimmte Regionen ausdrücklich blockiert, jetzt möchten wir den Zugriff nur aus bestimmten Regionen zulassen. Dies ist möglich, indem wir unsere Regeln negieren. Dies erreichen wir mit dem Rufzeichen !
Zum Beispiel möchten wir den Zugriff ausschließlich aus Deutschland erlauben. Kommt der Zugriff von einem anderen Ort als Deutschland, wird er blockiert.
Beispiel 4: Nur Zugriffe aus Deutschland erlauben:
<IfModule mod_geoip.c>
# NOT from Germany
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^DE$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 4.1: Nur Zugriffe aus der DACH-Region erlauben:
<IfModule mod_geoip.c>
# NOT from Germany OR Austria OR Switzerland
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(DE|AT|CH)$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Das Problem bei solchen Regeln ist, dass Sie möglicherweise bestimmte Dienste blockieren, die Sie benötigen. Daher können Sie diese ausdrücklich zulassen, auch wenn sie durch GEOblock blockiert würden.
Beispiel 4.2: Nur Zugriffe aus der DACH-Region erlauben und auch „Google Common Crawler”, „Bing Crawler” sowie „Meta-Webcrawler”:
<IfModule mod_geoip.c>
# NOT from Germany OR Austria OR Switzerland
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(DE|AT|CH)$
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# NOT Bing crawlers
# https://www.bing.com/bingbot.htm
RewriteCond %{HTTP_USER_AGENT} "!(bingbot\/\d\.\d|adidxbot\/\d\.\d|MicrosoftPreview\/\d\.\d)"[NC]
# NOT Meta-Webcrawler
# https://developers.facebook.com/docs/sharing/webmasters/web-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(facebookexternalhit\/\d\.\d|facebookcatalog\/\d\.\d|meta-webindexer\/\d\.\d|meta-externalads\/\d\.\d|meta-externalagent\/\d\.\d|meta-externalfetcher\/\d\.\d)"[NC]
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Sie können auch andere Useragents hinzufügen oder entfernen, indem Sie einfach die in diesem Beispiel angegebenen hinzufügen oder entfernen. Hier finden Sie einige andere Useragents, die nützlich sein könnten und die Sie zu Ihren eigenen Regeln hinzufügen können:
Eine Übersicht der Google-Crawler finden Sie HIER.
Bekannte Useragents whitelisten:
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# NOT Google special-case crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-special-case-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(APIs-Google|AdsBot-Google(-Mobile)?|Mediapartners-Google(\/\d\.\d)?|Google-Safety)"[NC]
# NOT Google user-triggered fetchers
# https://developers.google.com/search/docs/crawling-indexing/google-user-triggered-fetchers
RewriteCond %{HTTP_USER_AGENT} "!(FeedFetcher-Google|GoogleProducer|Google-Read-Aloud|Google-Site-Verification\/\d\.\d)"[NC]
# NOT Bing crawlers
# https://www.bing.com/bingbot.htm
RewriteCond %{HTTP_USER_AGENT} "!(bingbot\/\d\.\d|adidxbot\/\d\.\d|MicrosoftPreview\/\d\.\d)"[NC]
# NOT Meta-Webcrawler
# https://developers.facebook.com/docs/sharing/webmasters/web-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(facebookexternalhit\/\d\.\d|facebookcatalog\/\d\.\d|meta-webindexer\/\d\.\d|meta-externalads\/\d\.\d|meta-externalagent\/\d\.\d|meta-externalfetcher\/\d\.\d)"[NC]
# NOT OpenAI Crawlers
# https://platform.openai.com/docs/bots/overview-of-openai-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(OAI-SearchBot\/\d\.\d|ChatGPT-User\/\d\.\d|GPTBot\/\d\.\d)"[NC]
# NOT DuckDuckGo
# https://duckduckgo.com/duckduckbot.html
RewriteCond %{HTTP_USER_AGENT} "!(DuckDuckBot\/\d\.\d)"[NC]
Wenn Sie „Meta-Webcrawler” also nicht explizit zulassen möchten, können Sie Beispiel 4.2 wie folgt anpassen:
<IfModule mod_geoip.c>
# NOT from Germany OR Austria OR Switzerland
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(DE|AT|CH)$
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# NOT Bing crawlers
# https://www.bing.com/bingbot.htm
RewriteCond %{HTTP_USER_AGENT} "!(bingbot\/\d\.\d|adidxbot\/\d\.\d|MicrosoftPreview\/\d\.\d)"[NC]
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 5: Zugriffe nur aus den USA und Europa erlauben und Russland explizit sperren:
<IfModule mod_geoip.c>
# From Russia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
# Access denied
RewriteRule .* - [F,L]
# NOT from Europe
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} !^EU$
# NOT from the US
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^US$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 5.1: Zugriffe nur aus den USA und Europa erlauben und Russland explizit sperren. Zusätzlich wird eine Ausnahme für „Google Common Crawlers“ definiert, sodass deren Anfragen nicht abgewiesen werden, auch wenn sie nicht aus Europa oder den USA stammen:
<IfModule mod_geoip.c>
# From Russia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
# Access denied
RewriteRule .* - [F,L]
# NOT from Europe
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} !^EU$
# NOT from the US
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^US$
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Beispiel 5.2: Zugriffe nur aus den USA und Europa erlauben und Russland explizit sperren. Gleichzeitig wird jedoch eine Whitelist für „Google Common Crawlers“ eingerichtet, sodass deren Anfragen auch dann zugelassen werden, wenn sie aus Russland oder generell von außerhalb Europas und der USA kommen:
<IfModule mod_geoip.c>
# From Russia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# Access denied
RewriteRule .* - [F,L]
# NOT from Europe
RewriteCond %{ENV:GEOIP_CONTINENT_CODE} !^EU$
# NOT from the US
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^US$
# NOT Google common crawlers
# https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
RewriteCond %{HTTP_USER_AGENT} "!(Googlebot\/\d\.\d|Googlebot-Image\/\d\.\d|Googlebot-Video\/\d\.\d|Storebot-Google\/\d\.\d|Google-InspectionTool\/\d\.\d|GoogleOther(-(Image|Video)(\/\d\.\d))?|Google-CloudVertexBot)"[NC]
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Die andere praktische Funktion von GeoBlock ist die Möglichkeit, ein ganzes AS zu blockieren, das sogenannte „Autonomous System“. Jedes Unternehmen, dem öffentliche Netzwerke im Internet gehören, ist ein AS und besitzt eine ASN („Autonomous System Number“).
Mit dieser Nummer lassen sich Netzwerke und Adressen eines Unternehmens eindeutig zuordnen, sodass sich mehrere Netzwerke mühelos blockieren oder freigeben lassen. Diese Informationen findet man am besten über IPinfo, da deren Datenbank in diesem Fall für das Geoblocking genutzt wird. Einfach eine Beispiel-IP eingeben und die ASN unter https://ipinfo.io ermitteln.
Beispiel 6: eine bestimmte AS blockieren:
<IfModule mod_geoip.c>
# From AS000000
RewriteCond %{ENV:GEOIP_ASN} ^AS000000$
# Access denied
RewriteRule .* - [F,L]
</IfModule>
Wie aus diesen Beispielen hervorgeht, kann man die Länder auf Kontinentenebene, sowie auf Länderebene steuern. Nachfolgend eine Beispiel-Liste, falls individuelle Anpassungen bei den Ländern notwendig ist:
Verfügbare Parameter
Kontinente (GEOIP_CONTINENT_CODE)
- AF – Afrika
- AN – Antarktis
- AS – Asien
- EU – Europa
- NA – Nordamerika
- OC – Ozeanien
- SA – Südamerika
Häufige Ländercodes (GEOIP_COUNTRY_CODE) – ISO-3166-alpha2
- DE – Deutschland
- AT – Österreich
- CH – Schweiz
- US – USA
- GB – Großbritannien
- FR – Frankreich
- IT – Italien
- ES – Spanien
- CN – China
- RU – Russland
- IN – Indien
- JP – Japan
- Weitere Ländercodes
Prüfung des GeoBlocks
Sobald die Regeln in der .htaccess hinterlegt sind, greifen diese. Somit sieht man sofort, ob man einen Fehler drinnen hat, der den Server lahmlegt. Anschließend kann mit mit Hilfe eines VPNs, oder Websiten wie z.B. https://check-host.net/check-http prüfen, ob der Zugriff aus bestimmten Ländern blockiert wird.
The IP address data is powered by IPinfo. | Die IP-Adressdaten werden von IPinfo bereitgestellt.