Siirry pääsisältöön

Maakohtainen pääsyrajoitus sivustolle (geoblock)

Päivitetty yli kuukausi sitten

Toisinaan voi ilmetä tarve estää vierailijan pääsy sivustolle tai ohjata tietylle sivulle sijainnin perusteella. Seravolla on mahdollisuus rajata sivustolle pääsyä erillisen HTTP-otsaketiedon (header) avulla.

Rajaa pääsyä PHP:lla tai nginx:llä

Seravon omalla HTTP-otsaketiedolla X-Seravo-Geo-Country-Code voit hallita pääsyä sivustolle tarkemmin.

Uudelleenohjaa vierailijat toiselle sivulle PHP:lla

Uudelleenohjaus (redirect) toiselle sivulle on käytännöllinen esimerkiksi silloin, kun halutaan ohjata tietystä maasta tuleva sivustovierailija sopivaan kieliversioon.

<?php 
if (isset($_SERVER['HTTP_X_SERAVO_GEO_COUNTRY_CODE'])) {
switch (strtolower($_SERVER['HTTP_X_SERAVO_GEO_COUNTRY_CODE'])) {

// Ohjaa suomenkielinen vierailija sivustolle esimerkki.fi case 'FI':
header("Location: https://esimerkki.fi");
exit();
// Ohjaa ruotsinkielinen vierailija sivustolle esimerkki.se case 'SE':
header("Location: https://esimerkki.se");
exit();

default:

// Älä tee mitään, jatka suorittamista WordPressissä break;
}
} else {
error_log("Error: X-Seravo-Geo-Country-Code header not found!");
}

Uudelleenohjaa vierailijat toiselle sivulle nginx:llä

Voit tehdä vastaavan uudelleenohjauksen myös HTTP-palvelimelle. Muokkaa esimerkin maatunnisteita halutun rajauksen toteuttamiseksi.

# Ohjaa suomenkielinen vierailija sivustolle esimerkki.fi 
if ($http_x_seravo_geo_country_code = "FI") {
return 301 https://esimerkki.fi;
}

# Ohjaa ruotsinkielinen vierailija sivustolle esimerkki.se
if ($http_x_seravo_geo_country_code = "SE") {
return 301 https://esimerkki.se;
}

Rajaukset kirjautumissivulla

Myös kirjautumissivulle voi määritellä maarajauksen. Koska rajaus voi estää myös oikeiden käyttäjien pääsyä sivustolle, suosittelemme maarajausten sijaan kaksivaiheisen tunnistautumisen (2FA) ja reCaptcha-lisäosien käyttöä kirjautumissivuilla mahdollisuuksien mukaan, sillä ne ovat tehokkaampi keino suojata kirjautumissivu.

Muokkaa alla olevan esimerkin maatunnisteita halutun rajauksen toteuttamiseksi.

location ~ /wp-login.php { 
if ( $http_x_seravo_geo_country_code !~* "(FI|SE|BG)" )
return 403;
}
}

Lisätietoja

Vastasiko tämä kysymykseesi?