Hallo Zusammen, war leider über die Suchfunktion nicht fündig, daher hier: Gibt es eine elegante Möglichkeit, Besucher aus bestimmten Ländern nicht in den Shop zu lassen? Bitte keine Diskussion darüber, was ihr davon haltet oder nicht. Ich weiß, EU Geo-Blocking usw. Aber jemand aus Japan hat zum Beispiel keine EU-Rechte und kann meiner Meinung nach ausgesperrt werden. Wenn ihr das nicht machen wollt, eure Entscheidung. Mir geht es um die technische Lösung. Bisher gefunden habe ich: IP-Bereiche sperren über /GProtector/ip_blacklist.txt IP-Bereiche sperren über htaccess Zunächst die Frage: Machen beide das gleiche? Gäbe es einen Grund das eine oder das andere zu nutzen? Dann frage ich mich: Woher bekomme ich die IP-Bereiche? Ich habe mir heute diverse Listen heruntergeladen (ipdeny.com, ip2location.com, iptoasn.com), hab dann per tunnelbear eine VPN-Verbindung in die Schweiz aufgebaut und die IP die ich bekommen habe war in keinem der Datenbanken drin. www.wieistmeineip.de hatte keine Probleme zu erkennen, dass ich in der Schweiz bin. Das war also schonmal nicht so erfolgreich. Nächste Frage, wie aktualisiere ich das regelmäßig und automatisiert. Das ließe sich schon irgendwie machen, eleganter wäre natürlich, wenn ich ne Liste von Ländern hätte die sich selbst aktualisiert und ich nur die Länder auswähle. Geht das am Ende doch nur über einen Dritt-Anbieter wie cloudflare?
gas geht viel einfacher … https://www.google.com/search?q=htaccess+länder+sperren&rlz=1C9BKJA_enNL1012NL1012&oq=htaccess+lä&gs_lcrp=EgZjaHJvbWUqCAgBEAAYFhgeMgYIABBFGDkyCAgBEAAYFhgeMgcIAhAhGKAB0gEIODA1OWowajeoAg6wAgHiAwQYASBf8QV8461C3qXKfA&hl=de&sourceid=chrome-mobile&ie=UTF-8#sbfbu=1&pi=htaccess länder sperren Um Länder mithilfe einer .htaccess-Datei von Webseitenaufrufen auszuschließen, kann man das Apache-Modul mod_geoip verwenden. Man definiert dabei für jedes Land einen Ländercode (z.B. "DE" für Deutschland) und kann dann Zugriffe von diesen Ländern entweder blockieren oder erlauben
Okay, also htaccess. Ich habs mal probiert, hat aber weder mit mod_geoip noch mit mod_maxminddb geklappt. Ich kontaktiere mal den Hoster ob die Module überhaupt zur Verfügung stehen. Nur damit ich das richtig verstehe, das muss in die .htaccess die im Hauptordner des Shops liegt? Ist das wichtig wo in die Datei? Ich finde da einen Punkt der sagt Code: # ----------------------------------------------------------------------------- # Put your own Redirects and Rewrites here - Start # ----------------------------------------------------------------------------- das bezieht sich aber scheinbar auf mod_rewrite. Ich hatte diesen Block ganz oben in die Datei eingefügt: Code: <IfModule mod_geoip.c> GeoIPEnable On SetEnvIf GEOIP_COUNTRY_CODE JP BlockCountry SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry SetEnvIf GEOIP_COUNTRY_CODE NG BlockCountry <RequireAll> Require all granted Require not env BlockCountry </RequireAll> </IfModule> hatte aber scheinbar keine Wirkung.
Falls jemand etwas ähnliches probieren möchte, sollte man den Hoster kontaktieren. mod_geoip ging bei mir nicht, mod_maxminddb aber schon. Es braucht dafür eine Datenbank auf dem Server und man muss halt wissen wo die liegt. Der Code der bei mir funktioniert hat sah dann so aus, explizit erlaubt sind die EU Länder und dazu USA, Canada und Großbritannien um mögliche Bots von Suchmaschinen noch durchzulassen: Code: <IfModule mod_maxminddb.c> MaxMindDBEnable On MaxMindDBFile DB /var/lib/GeoIP/GeoLite2-Country.mmdb MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code SetEnvIf MM_COUNTRY_CODE ^(BE|BG|DK|DE|EE|FI|FR|GR|IE|IT|HR|LV|LT|LU|MT|NL|AT|PL|PT|RO|SE|SK|SI|ES|CZ|HU|CY|US|CA|GB) AllowCountry Deny from all Allow from env=AllowCountry </IfModule> Das habe ich ganz oben in die .thaccess eingefügt.
Aus Interesse: Was meinst Du genau mit: "Besucher aus bestimmten Ländern nicht in den Shop zu lassen" - was soll dann passieren, wenn ich aus Timbuktu auf Deinen Shop zugreife? Weiterleitung zu Google? 404 Seite? Fehlermeldung? Oder sollen die sich nur nicht anmelden können?
Soweit war ich noch nicht, dass ich mir den "Luxus" erlauben konnte zu überlegen was ich gerne hätte was passiert. Ich war an dem Punkt das ich erstmal irgendeine Lösung haben wollte. Bei der .htaccess Variante kommt jetzt ein "Forbidden. You don't have permission to access this resource." Also ein 403 um genau zu sein. Eine statische Info-Seite fände ich glaube ich schön, wo ich selbst entscheiden kann was dort steht. Sowas wie "Tut uns Leid, diese Website steht in Ihrem Land nicht zur Verfügung". Aber das wird wohl so einfach nicht gehen.
Schau mal, so setze ich das in einem Projekt um, da wird von einem QR-Code auf unterschiedliche Länderseiten weitergeleitet (kein Gambio).
Wow, super cooler Input. Habe ich jetzt tatsächlich umgebaut, ist so eine ganze Ecke schöner. Für die Nachwelt, so sieht es dann bei uns aus, durch die Verneinung "!^" werden alle Anfragen die nicht aus den genannten Ländern kommen umgeleitet auf die redirect subdomain. Ich hab jetzt auch Norwegen, Liechtenstein und Island drin, damit das rechtlich sauber ist. Code: <IfModule mod_maxminddb.c> MaxMindDBEnable On RewriteEngine on MaxMindDBFile DB /var/lib/GeoIP/GeoLite2-Country.mmdb MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code RewriteCond %{ENV:MM_COUNTRY_CODE} !^(BE|BG|DK|DE|EE|FI|FR|GR|IE|IT|HR|LV|LT|LU|MT|NL|AT|PL|PT|RO|SE|SK|SI|ES|CZ|HU|CY|US|CA|GB|IS|NO|LI)$ RewriteRule ^(.*)$ https://redirect.shopurl.de/ [L] </IfModule>
Hab gerade mein VPN gestartet und mich über Island verbunden. Dann mit MS Edge - den ich nie für nichts nutze, außer für Tests - auf Deinen Shop zugegriffen. Das hat problemlos funktioniert, also im Sinne von: Ich hab Deinen Shop gesehen und konnte stöbern... ah, mit Japan und Chile geht's:
Ja Island soll auch durchgehen, ist EWR und muss man scheinbar zulassen wegen Geoblocking-Verordnung. Danke für den Test