Pääsyn rajaus sivustolle WP-palvelussa (geoblock)

Toisinaan voi ilmetä tarve estää vierailijan pääsy sivustolle tai ohjata tietylle sivulle sijainnin perusteella. Seravon WP-palvelussa 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.

Edelleenohjaa vierailijat toiselle sivulle PHP:lla

Edelleenohjaus (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!");
}

Edelleenohjaa 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 (englanniksi).

Vastasiko tämä kysymykseesi? Kiitos palautteesta. Palautteen lähettämisessä oli ongelma. Yritä uudelleen myöhemmin.