How To Block Traffic From Countries In cPanel Via The .htaccess File

Table of Contents

Why Block Traffic By Country?

If your website is hosted on a server that uses cPanel, you can easily block traffic from specific countries using the .htaccess file which is located in the file manager. Below are some reasons you might want to block traffic from specific countries:

  • Security: Reducing the risk of attacks from countries known for high levels of malicious activity.
  • Performance: Enhancing website performance by limiting access to users that are not in your target countries.
  • Compliance: Ensuring compliance with regional laws and regulations that may restrict access to certain content such as GDPR.

How To Block Traffic By Country

  1. Open your browser of choice and navigate to your cPanel login page.
  2. Enter your username and password, then click “Log in.”
  3. Once logged in, find the “Files” section and select “File Manager.”
  4. Navigate to the directory of your website. This is usually the public_html directory if you only have 1 domain.
    Public html file manager screenshot conor bradley digital agency

Boost Your Online Presence with Our Managed VPS Hosting with Unbeatable Support

Discover the ultimate hosting experience with our Managed VPS Hosting. Tailored to your business needs, enjoy unmatched performance, customisable solutions, and top-notch security. Elevate your website with our expert support & automatic updates.

Creating or Editing the .htaccess File

In your domain’s root directory, look for the .htaccess file. If you’re unable to find it then follow the steps below. If the file is already visible then please skip this section.

Showing Hidden Files In cPanel

If it doesn’t exist, there’s a chance you have show hidden files disabled. Which we will show you how to change now

  1. In the top-right corner select settings.
  2. A popup will now appear. Locate the following “Show Hidden Files (dotfiles)” and make sure the tickbox is ticked.
  3. Select Save
    *You should now be able to see the htaccess file
    Showing hidden files in cpanel file manager screenshot conor bradley digital agency

Creating A .htaccess File In cPanel

If you still don’t have a .htaccess file then you’ll need to create one by following the steps below.

  1. Select the “+ File” located in the top-left corner
  2. In the new file name field type “.htaccess”
  3. Make sure the path is correct in the “New file will be created in:” field
  4. Select create new file
    Your .htaccess file will now be created.

Editing The .htaccess File In cPanel

Now we know you have a .htaccess file in your directory. Heres how to edit the file so we can get to blocking your selected countries.

  1. Right-click on the .htaccess file and select “Edit”.
  2. If a pop-up appears, warning you about editing code directly. Select “Edit” again to proceed.

Blocking The Country With The Code

For this code to work it will need to be inserted at the bottom of your .htaccess file.

  1. Paste the following code at the bottom of your .htaccess file.

    SetEnvIf GEOIP_COUNTRY_CODE AF BlockCountry

    SetEnvIf GEOIP_COUNTRY_CODE AG BlockCountry

    Deny from env=BlockCountry

  2. Once you have pasted the code you will need to change it to the countries you wish to block. This can be done by checking the list below for the country codes and then replacing the placeholders we entered. As placeholders, we blocked AF (Afganistan) & AG (Antigua and Barbuda).
  3. If you wish to add more countries then you can simply copy and replace the following code

    SetEnvIf GEOIP_COUNTRY_CODE AF BlockCountry

  4. If you wish to remove a country then you can simply delete one of the country code lines
  5. Once you are happy with your changes select save changes located in the top-right corner.

Unmanaged VPS Hosting - Customisable & High-Performance Solutions

Take control with our Unmanaged VPS Hosting, designed for tech-savvy users. Enjoy the flexibility of custom configurations, cost-effective plans, and high-performance hardware to meet the demands of your growing website or application. Scale effortlessly and manage your resources your way.

Testing the Changes

To ensure the changes have been applied correctly, clear your website’s cache and try to view your website.

If everything is working fine you can use a VPN or ask someone from the targeted countries to attempt accessing your website. They should receive an error message indicating they are blocked.

ISO 3166 Country Codes

List of ISO 3166 Country Codes to be used with GeoIP apache module:

A1 – “Anonymous Proxy”

A2 – “Satellite Provider”

O1 – “Other Country”

AD – “Andorra”

AE – “United Arab Emirates”

AF – “Afghanistan”

AG – “Antigua and Barbuda”

AI – “Anguilla”

AL – “Albania”

AM – “Armenia”

AO – “Angola”

AP – “Asia/Pacific Region”

AQ – “Antarctica”

AR – “Argentina”

AS – “American Samoa”

AT – “Austria”

AU – “Australia”

AW – “Aruba”

AX – “Aland Islands”

AZ – “Azerbaijan”

BA – “Bosnia and Herzegovina”

BB – “Barbados”

BD – “Bangladesh”

BE – “Belgium”

BF – “Burkina Faso”

BG – “Bulgaria”

BH – “Bahrain”

BI – “Burundi”

BJ – “Benin”

BL – “Saint Bartelemey”

BM – “Bermuda”

BN – “Brunei Darussalam”

BO – “Bolivia”

BQ – “Bonaire – Saint Eustatius and Saba”

BR – “Brazil”

BS – “Bahamas”

BT – “Bhutan”

BV – “Bouvet Island”

BW – “Botswana”

BY – “Belarus”

BZ – “Belize”

CA – “Canada”

CC – “Cocos (Keeling) Islands”

CD – “Congo – The Democratic Republic of the”

CF – “Central African Republic”

CG – “Congo”

CH – “Switzerland”

CI – “Cote d’Ivoire”

CK – “Cook Islands”

CL – “Chile”

CM – “Cameroon”

CN – “China”

CO – “Colombia”

CR – “Costa Rica”

CU – “Cuba”

CV – “Cape Verde”

CW – “Curacao”

CX – “Christmas Island”

CY – “Cyprus”

CZ – “Czech Republic”

DE – “Germany”

DJ – “Djibouti”

DK – “Denmark”

DM – “Dominica”

DO – “Dominican Republic”

DZ – “Algeria”

EC – “Ecuador”

EE – “Estonia”

EG – “Egypt”

EH – “Western Sahara”

ER – “Eritrea”

ES – “Spain”

ET – “Ethiopia”

EU – “Europe”

FI – “Finland”

FJ – “Fiji”

FK – “Falkland Islands (Malvinas)”

FM – “Micronesia – Federated States of”

FO – “Faroe Islands”

FR – “France”

GA – “Gabon”

GB – “United Kingdom”

GD – “Grenada”

GE – “Georgia”

GF – “French Guiana”

GG – “Guernsey”

GH – “Ghana”

GI – “Gibraltar”

GL – “Greenland”

GM – “Gambia”

GN – “Guinea”

GP – “Guadeloupe”

GQ – “Equatorial Guinea”

GR – “Greece”

GS – “South Georgia and the South Sandwich Islands”

GT – “Guatemala”

GU – “Guam”

GW – “Guinea-Bissau”

GY – “Guyana”

HK – “Hong Kong”

HM – “Heard Island and McDonald Islands”

HN – “Honduras”

HR – “Croatia”

HT – “Haiti”

HU – “Hungary”

ID – “Indonesia”

IE – “Ireland”

IL – “Israel”

IM – “Isle of Man”

IN – “India”

IO – “British Indian Ocean Territory”

IQ – “Iraq”

IR – “Iran – Islamic Republic of”

IS – “Iceland”

IT – “Italy”

JE – “Jersey”

JM – “Jamaica”

JO – “Jordan”

JP – “Japan”

KE – “Kenya”

KG – “Kyrgyzstan”

KH – “Cambodia”

KI – “Kiribati”

KM – “Comoros”

KN – “Saint Kitts and Nevis”

KP – “Korea – Democratic People’s Republic of”

KR – “Korea – Republic of”

KW – “Kuwait”

KY – “Cayman Islands”

KZ – “Kazakhstan”

LA – “Lao People’s Democratic Republic”

LB – “Lebanon”

LC – “Saint Lucia”

LI – “Liechtenstein”

LK – “Sri Lanka”

LR – “Liberia”

LS – “Lesotho”

LT – “Lithuania”

LU – “Luxembourg”

LV – “Latvia”

LY – “Libyan Arab Jamahiriya”

MA – “Morocco”

MC – “Monaco”

MD – “Moldova – Republic of”

ME – “Montenegro”

MF – “Saint Martin”

MG – “Madagascar”

MH – “Marshall Islands”

MK – “Macedonia”

ML – “Mali”

MM – “Myanmar”

MN – “Mongolia”

MO – “Macao”

MP – “Northern Mariana Islands”

MQ – “Martinique”

MR – “Mauritania”

MS – “Montserrat”

MT – “Malta”

MU – “Mauritius”

MV – “Maldives”

MW – “Malawi”

MX – “Mexico”

MY – “Malaysia”

MZ – “Mozambique”

NA – “Namibia”

NC – “New Caledonia”

NE – “Niger”

NF – “Norfolk Island”

NG – “Nigeria”

NI – “Nicaragua”

NL – “Netherlands”

NO – “Norway”

NP – “Nepal”

NR – “Nauru”

NU – “Niue”

NZ – “New Zealand”

OM – “Oman”

PA – “Panama”

PE – “Peru”

PF – “French Polynesia”

PG – “Papua New Guinea”

PH – “Philippines”

PK – “Pakistan”

PL – “Poland”

PM – “Saint Pierre and Miquelon”

PN – “Pitcairn”

PR – “Puerto Rico”

PS – “Palestinian Territory”

PT – “Portugal”

PW – “Palau”

PY – “Paraguay”

QA – “Qatar”

RE – “Reunion”

RO – “Romania”

RS – “Serbia”

RU – “Russian Federation”

RW – “Rwanda”

SA – “Saudi Arabia”

SB – “Solomon Islands”

SC – “Seychelles”

SD – “Sudan”

SE – “Sweden”

SG – “Singapore”

SH – “Saint Helena”

SI – “Slovenia”

SJ – “Svalbard and Jan Mayen”

SK – “Slovakia”

SL – “Sierra Leone”

SM – “San Marino”

SN – “Senegal”

SO – “Somalia”

SR – “Suriname”

SS – “South Sudan”

ST – “Sao Tome and Principe”

SV – “El Salvador”

SX – “Sint Maarten”

SY – “Syrian Arab Republic”

SZ – “Swaziland”

TC – “Turks and Caicos Islands”

TD – “Chad”

TF – “French Southern Territories”

TG – “Togo”

TH – “Thailand”

TJ – “Tajikistan”

TK – “Tokelau”

TL – “Timor-Leste”

TM – “Turkmenistan”

TN – “Tunisia”

TO – “Tonga”

TR – “Turkey”

TT – “Trinidad and Tobago”

TV – “Tuvalu”

TW – “Taiwan”

TZ – “Tanzania – United Republic of”

UA – “Ukraine”

UG – “Uganda”

UM – “United States Minor Outlying Islands”

US – “United States”

UY – “Uruguay”

UZ – “Uzbekistan”

VA – “Holy See (Vatican City State)”

VC – “Saint Vincent and the Grenadines”

VE – “Venezuela”

VG – “Virgin Islands – British”

VI – “Virgin Islands – U.S.”

VN – “Vietnam”

VU – “Vanuatu”

WF – “Wallis and Futuna”

WS – “Samoa”

YE – “Yemen”

YT – “Mayotte”

ZA – “South Africa”

ZM – “Zambia”

ZW – “Zimbabwe”

Recent Posts

Website Hosting

How Does VPS Hosting Work?

Explore the transformative world of VPS Hosting, where performance, scalability, and security converge to offer a superior web hosting experience.

VPS, standing as a middle-ground between shared and dedicated hosting, provides dedicated resources and enhanced control, making it an ideal solution for a diverse range of online needs.

Read More »

Share This Post