Skocz do zawartości
Pecetowicz Forum komputerowe

Jak zezwolić na dostęp do strony WWW tylko z określonego kraju


Przejdź do rozwiązania Rozwiązane przez SeNioR,

Rekomendowane odpowiedzi

Witam. Jak zrobić aby wejście na stronę mogło być dostępne tylko z określonego kraju np. Polski? Jak zezwolić na dostęp do strony WWW tylko z jednego kraju i zablokować dostęp dla innych krajów?

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Administrator

Najlepiej przez htaccess. Tylko tutaj uwaga przy blokadzie IP: może się zdarzyć tak, że niektóre IP są przypisane do botów indeksujących stronę i jeśli zablokujesz taki ruch tego adresu to Twoja strona nie zostanie zindeksowana w efekcie nie pojawi się w wynikach wyszukiwania.

  • Lubię to! 2
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Założyciel
  • Rozwiązanie

Cześć. Oczywiście że się da. Możesz to zrobić używając usługi CloudFlare bądź pliku konfiguracyjnego htaccess.

Blokada strony dla danego kraju przez htaccess.

Możesz użyć modułu mod_rewrite i zastosować przykładowo taką regułkę która pozwoli na dostęp tylko z Polski, Niemiec i USA.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(PL|DE|US)$
RewriteRule ^(.*)$ - [F]
</ifModule>

Znak "|" znaczy nic innego jak "or" czyli lub. Możesz w ten sposób dodać bądź usunąć inne kraje. Oczywiście Twój serwer musi mieć zainstalowany moduł GEOIP.

Można też użyć innego, mniej skompresowanego zapisu, jeżeli wolisz aby każdy dozwolony kraj był zapisany w osobnej linijce.

<IfModule mod_geoip.c>
  GeoIPEnable On
</IfModule>
SetEnvIf GEOIP_COUNTRY_CODE PL AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
Allow from env=AllowCountry

Jeżeli owe regułki nie będą działać to można zablokować adres IP po zakresie, korzystając np. ze strony countryipblocks.net która wygeneruje gotowy kod.

Jak zablokować dostęp z danego kraju w CloudFlare?

Jeżeli chodzi o CloudFlare to można to zrobić na dwa sposoby.

Pierwszy sposób

Po zalogowaniu się do CloudFlare w zakładce "Network" należy włączyć usługę "IP Geolocation" dzięki czemu będzie wysyłany nagłówek "CF-IPCountry" z którego będzie można odczytać kraj.

Ponownie można użyć pliku htaccess i dodać poniższą regułę która będzie przechwytywać informacje z nagłówka CF.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:CF-IPCountry} !^(PL|DE|US)$
RewriteRule ^(.*)$ - [F]
</ifModule>

Drugi sposób

Należy przejść do zakładki "Firewall" następnie "Firewall Rules" i dodać nową regułę klikając "Create firewall rule".

Ustawiamy regułę w następujący sposób:

  • Field: Country
  • Operator: does not equal
  • Value: Poland
  • Choose an action: Block

W ten sposób kraj który nie jest równy Polsce zostanie zablokowany. 

  • Lubię to! 2
  • Super 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...