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
Lue lisää aiheesta Seravon kehittäjädokumentaatiosta.