Cách Chặn Truy Cập Theo Quốc Gia Bằng File .htaccess

Trong quá trình vận hành website, không phải mọi lượt truy cập đều mang lại giá trị. Nhiều quản trị viên thường xuyên gặp tình trạng spam, bot tự động hoặc các cuộc tấn công xuất phát từ một số quốc gia nhất định. Điều này không chỉ làm hao tốn tài nguyên máy chủ mà còn ảnh hưởng đến tốc độ và mức độ an toàn của website.

Một trong những giải pháp đơn giản nhưng hiệu quả là chặn truy cập theo quốc gia. Nếu website của bạn đang sử dụng máy chủ Apache, bạn có thể thực hiện việc này trực tiếp thông qua file cấu hình .htaccess mà không cần cài thêm phần mềm phức tạp.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách thiết lập .htaccess để giới hạn hoặc chặn truy cập từ các quốc gia không mong muốn, giúp website hoạt động ổn định và an toàn hơn.

Hướng Dẫn Chặn Truy Cập Quốc Gia

Bước 1: Mở file .htaccess

Đăng nhập vào hosting

Vào thư mục gốc website tìm đến file .htaccess (nếu chưa có tạo mới)

Web 01

Bước 2: Chặn quốc gia bằng GeoIP

Ví dụ: Chặn truy cập từ Trung Quốc và Nga

vNode Tutorial
GeoIPEnable On
RewriteEngine On

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|RU)$
RewriteRule ^ - [F,L]

Trong đó: 

CN: Trung Quốc

RU: Nga

F: Trả về lỗi 403 Forbidden

L: Dừng xử lý rule

Ws 02

Bước 3: Chặn nhiều quốc gia cùng lúc 

Ví dụ: Trung Quốc, Nga, Ấn Độ, Indonesia

Bạn chỉ cần thêm mã quốc gia vào giữa các dấu |.

vNode Tutorial
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|RU|IN|ID)$
RewriteRule ^ - [F,L]

Bước 4: Chỉ cho phép Việt Nam truy cập 

Nếu website chỉ phục vụ người dùng Việt Nam:

vNode Tutorial
GeoIPEnable On
RewriteEngine On

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^VN$
RewriteRule ^ - [F,L]

Nghĩa là: IP không phải từ Việt Nam sẽ bị chặn toàn bộ

Khi nào nên dùng cách này?

  • Website chỉ phục vụ người dùng trong 1–2 quốc gia
  • Bị bot tấn công từ quốc gia cụ thể
  • Muốn giảm tải server, giảm spam