• Webmaster Tools
  • Diễn Đàn Hỏi Đáp
  • Profile
  • Ủng hộ
  • DNS Check
  • CheckIP
  • Liên Hệ
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • KHUYẾN MÃI
  • WEB MẪUHOT

Hướng dẫn chặn bot truy cập vào website

by ĐỖ TRUNG QUÂN 27/02/2025
Tác giả: ĐỖ TRUNG QUÂN 27/02/2025 0 comments 130 lượt xem
Dịch vụ xử lý mã độc WordPress
WEB MẪU WORDPRESS
Share FacebookTwitterPinterestTelegramEmail
130

NỘI DUNG

  • 1. Chặn bot trên NGINX
    • Bước 1: Hiểu đoạn mã chặn bot
    • Bước 2: Thêm cấu hình vào file NGINX
    • Bước 3: Kiểm tra và áp dụng cấu hình
  • 2. Chặn bot trên .htaccess (Apache, OpenLiteSpeed, LiteSpeed)
    • Bước 1: Hiểu đoạn mã
    • Bước 2: Thêm mã vào .htaccess
    • Bước 3: Kiểm tra
  • 3. Cách kiểm tra bot đã bị chặn chưa

Trong quá trình quản lý website, có nhiều bot tự động truy cập và thu thập dữ liệu từ trang web của bạn. Một số bot có ích như Googlebot hay Bingbot, nhưng cũng có nhiều bot độc hại hoặc không cần thiết gây tốn tài nguyên server, làm chậm website và ảnh hưởng đến hiệu suất.

chặn bot truy cập vào website

Nếu bạn đang sử dụng NGINX hoặc Apache (với file .htaccess), bạn có thể cấu hình để chặn các bot dựa trên User-Agent – một chuỗi thông tin mà bot gửi đến máy chủ khi truy cập. Bài viết này sẽ hướng dẫn từng bước cách áp dụng cấu hình chặn bot trên cả hai hệ thống. Đặc biệt với NGINX – vốn hơi “khó nhằn” với người mới – tôi sẽ giải thích chi tiết để bạn dễ hình dung. Bạn chỉ cần làm theo, không cần phải là chuyên gia!

Dưới đây là hai đoạn mã tôi sẽ sử dụng làm ví dụ:

  • NGINX: Chặn bot bằng cách trả về mã lỗi 444 (kết nối bị đóng ngay lập tức).
  • .htaccess: Chặn bot bằng cách trả về lỗi 403 (Forbidden – bị cấm).

1. Chặn bot trên NGINX

NGINX là một web server mạnh mẽ, nhưng cách cấu hình của nó có thể làm bạn bối rối nếu mới tiếp cận. Đừng lo, tôi sẽ giải thích từng bước để bạn hiểu rõ.

Bước 1: Hiểu đoạn mã chặn bot

Dưới đây là đoạn mã chặn bot trên NGINX:

if ($http_user_agent ~ (Bytespider|Amazonbot|DotBot|my-tiny-bot|python-requests|curl/7.68.0|curl/7.54.1|ClaudeBot|Go-http-client/2.0|ZoominfoBot|SemrushBot/7~bl|ByteLocale|YandexBot/3.0) ) {
    return 444;
}

  • $http_user_agent: Đây là biến trong NGINX, đại diện cho User-Agent mà trình duyệt hoặc bot gửi đến.
  • ~: Ký hiệu này có nghĩa là so khớp theo biểu thức chính quy (regex). Nó kiểm tra xem User-Agent có chứa bất kỳ chuỗi nào trong danh sách không.
  • Danh sách bot: Đây là tên các bot mà bạn muốn chặn, ví dụ như Amazonbot, Bytespider, YandexBot, v.v.
  • return 444: Khi bot bị phát hiện, NGINX sẽ trả về mã 444 – một mã đặc biệt để đóng kết nối ngay lập tức mà không gửi bất kỳ phản hồi nào thay vì sử dụng 403

Bước 2: Thêm cấu hình vào file NGINX

Bạn cần đặt đoạn mã này vào đúng vị trí trong file cấu hình NGINX. Thông thường, nó nằm trong file virtual host (vhost) của website.

2. Tìm file vhost: File này thường nằm trong /etc/nginx/sites-available/. Ví dụ: /etc/nginx/sites-available/yourdomain.com.

2. Mở file bằng lệnh sau

vi /etc/nginx/sites-available/yourdomain.com

3. Tìm khối server: Đây là nơi cấu hình cho website của bạn. Nó trông như thế này:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;
    ...
}

4. Thêm đoạn mã chặn bot: Đặt đoạn mã vào trong khối server, trước các quy tắc xử lý request khác (ví dụ: trước location /). Sau khi thêm, nó sẽ trông như sau:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;

if ($http_user_agent ~ (Bytespider|Amazonbot|DotBot|my-tiny-bot|python requests|curl/7.68.0|curl/7.54.1|ClaudeBot|Go-http-client/2.0|ZoominfoBot|SemrushBot/7~bl|ByteLocale|YandexBot/3.0) ) {
    return 444;
}

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    ...
}

Bước 3: Kiểm tra và áp dụng cấu hình

Kiểm tra cú pháp có bị sai sót không

nginx -t

Nếu không có lỗi, bạn sẽ thấy thông báo “syntax is ok” và “test is successful”.

Tải lại NGINX để áp dụng:

systemctl reload nginx

Lưu ý:

  • Sao lưu lại file cấu hình trước khi thực hiện thay đổi
  • Nếu bạn muốn chặn thêm bot khác, chỉ cần thêm tên bot vào danh sách, cách nhau bằng dấu |. Ví dụ: |GPTBot/1.2.
  • Hiện các ControlPanel và Kịch bản script có đường dẫn vhost lưu vị trí khác nhau. Nên bạn cần tìm đúng vị trí

2. Chặn bot trên .htaccess (Apache, OpenLiteSpeed, LiteSpeed)

Nếu bạn dùng Apache, việc chặn bot đơn giản hơn nhiều nhờ file .htaccess.

Bước 1: Hiểu đoạn mã

Đây là đoạn mã chặn bot trong .htaccess:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "Bytespider|Amazonbot/0.1|MJ12bot/v1.4.8|MJ12bot/v1.4.4|SemrushBot/6~bl|SemrushBot/7~bl" [NC]
RewriteRule .* - [F,L]

  • RewriteEngine On: Bật tính năng rewrite của Apache.
  • RewriteCond: Điều kiện kiểm tra User-Agent. Nếu khớp với danh sách bot, điều kiện sẽ đúng.
  • [NC]: Không phân biệt chữ hoa/thường (No Case).
  • RewriteRule: Nếu điều kiện đúng, trả về mã [F] (Forbidden – lỗi 403) và [L] (dừng xử lý tiếp).

Bước 2: Thêm mã vào .htaccess

Nếu bạn dùng hosting có sẵn giao diện thì có thể mở trực tiếp bằng cách click trực tiếp file và edit

1. Tìm file .htaccess: File này thường nằm trong thư mục gốc của website (ví dụ: /var/www/yourdomain.com/.htaccess).

2. Mở file:

vi /var/www/yourdomain.com/.htaccess

3. Dán đoạn mã: Thêm đoạn mã vào đầu file hoặc bất kỳ đâu, miễn là không nằm trong khối điều kiện khác.

Lưu và thoát: Nhấn Ctrl + O, Enter, rồi Ctrl + X.

chặn bot truy cập vào website

Bước 3: Kiểm tra

Không cần restart Apache vì .htaccess được áp dụng ngay lập tức. Bạn chỉ cần truy cập website để kiểm tra xem bot có bị chặn không (cách kiểm tra sẽ được đề cập ở phần sau).

Lưu ý:

  • Thêm bot mới bằng cách bổ sung tên bot vào danh sách, cách nhau bằng |.

3. Cách kiểm tra bot đã bị chặn chưa

Dùng lệnh curl để giả lập bot:

curl -A "SemrushBot" http://yourdomain.com

Nếu thấy phản hồi trống (NGINX 444) hoặc lỗi 403 (.htaccess), bạn đã thành công!

Xem log truy cập:

  • NGINX: /var/log/nginx/access.log
  • Apache: /var/log/apache2/access.log

Chặn bot không chỉ giúp tiết kiệm tài nguyên mà còn bảo vệ website của bạn khỏi những truy cập không mong muốn. Với NGINX, bạn có thể dễ dàng thêm đoạn mã vào file vhost và tận dụng mã 444 để “âm thầm” xử lý bot. Trong khi đó, .htaccess trên Apache lại đơn giản và trực quan hơn cho người mới. Hy vọng bài hướng dẫn này đã giúp bạn hiểu rõ và áp dụng thành công. Nếu có thắc mắc, cứ thử hỏi – tôi luôn sẵn sàng hỗ trợ!

5/5 - (1 bình chọn)
botchặn bot

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
ĐỖ TRUNG QUÂN

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn. Hiện tại mình là admin của Blog DOTRUNGQUAN.INFO - CaiSSL.COM - QuantriVPS.COM. Mới đây mình có tạo ra nhóm Hỗ trợ Server - Hosting & WordPress | Hỗ Trợ Xử Lý Mã Độc WordPress với mục đích gây dựng một cộng đồng nhỏ để mọi người trao đổi kinh nghiệm, kiến thức quản trị VPS. Các thủ thuật, mẹo vặt khi sử dụng VPS. Rất mong nhận được sự ủng hộ của các bạn.

BÀI VIẾT LIÊN QUAN

Tạo bot kiểm tra dung lượng VPS hằng...

21/02/2024

Hướng dẫn tạo Bot Telegram đơn giản

17/01/2024
Author Box
Author Image

ĐỖ TRUNG QUÂN

Chuyên viên quản trị hệ thống.

Tư vấn & triển khai dịch vụ

VPS | Hosting | SSL | Mailserver | Website | Sửa lỗi WordPress

Bài viết của tác giả

Hosting/VPS khuyên dùng

Phổ Biến

  • Hướng dẫn tạo SSH Key trên MAC OS

  • Hướng dẫn sử dụng SSH Key

  • Hướng dẫn cài đặt v2board trên AAPANEL

  • Vấn đề IP Public liên tục bị thay đổi vì sao và cách khắc phục

  • Khắc phục lỗi không hiện hình ảnh và mô tả khi share link lên Facebook

  • Hướng dẫn cài đặt MTProxy để truy cập Telegram

BẠN BÈ & ĐỐI TÁC

Thạch Phạm | CỔ Ý CONCEPT | Trương Quốc Cường | Đàm Trung Kiên | Web An Tâm | Phong Đinh | Học Mò | PHUNG.VN | Đăng Đạt

Bạn được quyền sao chép lại nội dung trên website Đỗ Trung Quân, miễn là có dẫn nguồn.

Hosting/VPS được tài trợ bởi AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay

AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay


Back To Top
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • KHUYẾN MÃI
  • WEB MẪUHOT