Limit/block customer registration
Sometimes, your site may fall victim to country specific attacks or SPAM bots. Discretely preventing access to customer registration on your server for a specific country is very straightforward, with a simple edit to your domain's ___general/example.com.conf
file.
Eg. To block the country with country code aa
set $bad_request "0";
if ($request_uri ~* ^/customer/account/(create(post)?|index|login)) {
set $bad_request "go";
}
if ($request_method = "POST") {
set $bad_request "go${bad_request}";
}
if ($geoip_country_code ~* (aa)) {
set $bad_request "go${bad_request}";
}
if ($bad_request = "gogogo") {
rewrite ^(.*)$ /uk-registration-only permanent;
}
You can use Perl REGEX to match multiple country codes within a single statement.
Eg. To block multiple countries
if ($geoip_country_code ~* (aa|bb)) {
set $bad_request "go${bad_request}";
}
Alternatively, if you want to give a discrete message, rather than an outright block (perhaps to allow for humans to contact you if there is an error), then a rewrite would be more suitable.
Eg. To redirect all registration requests to a static HTML page for visitors from country code aa
if ($bad_request = "gogogo") {
rewrite ^(.*)$ /uk-registration-only permanent;
}
Then just make a CMS page with the path /uk-registration-only
with whatever message you would like to pass to the user.