Keselamatan

Cara Blokir Akses Negara Tertentu di WordPress dengan .htaccess (Geo-Blocking)

  • 10 minit untuk membaca
  • Pasukan Hostragons
Cara Blokir Akses Negara Tertentu di WordPress dengan .htaccess (Geo-Blocking)

Geo-blocking di WordPress menggunakan fail .htaccess adalah kaedah untuk menolak trafik dari negara-negara tertentu ke laman web anda secara langsung di peringkat server. Biasanya, teknik ini melibatkan penggunaan peraturan .htaccess pada server Apache atau LiteSpeed, pangkalan data GeoIP/MaxMind, senarai blok IP, atau servis CDN/WAF. Namun, penting untuk diingat: fail .htaccess sendiri tidak mampu menentukan negara asal pelawat; negara hanya boleh dikenal pasti jika server menawarkan data negara dalam pemboleh ubah, atau jika julat IP negara tertentu dimasukkan dalam aturan.

Panduan ini menerangkan cara geo-blocking berfungsi di WordPress, bila ia sesuai digunakan, contoh peraturan, langkah-langkah aplikasi selamat, dan kesilapan yang sering berlaku. Tujuannya bukan sekadar memberi kod, tetapi membimbing anda supaya risiko seperti error 500, kehilangan SEO, gangguan pembayaran/integasi, atau tersilap blok Googlebot dapat diminimakan. Jika laman WordPress anda dihoskan di Hostragons, disarankan untuk membuat salinan fail dari panel hosting dan lakukan perubahan secara berperingkat Hosting WordPress.

Apa Itu Geo-Blocking dan Kegunaannya di WordPress?

Geo-blocking bermaksud menyekat akses berdasarkan lokasi geografi pelawat, biasanya dipastikan melalui alamat IP. Contohnya, laman e-dagang yang hanya beroperasi di Malaysia boleh memilih untuk blok negara lain jika menerima banyak spam, pendaftaran palsu, komen automatik, atau cubaan brute-force dari luar negara sasaran.

Dalam WordPress, geo-blocking boleh digunakan untuk:

  • Mengurangkan cubaan login jahat ke panel admin.
  • Meminimakan komen spam, pendaftaran bot, dan penghantaran borang palsu.
  • Membatasi akses kerana lesen, hak siar, atau keperluan undang-undang.
  • Melindungi sumber server daripada trafik luar pasaran.
  • Mengurangkan permintaan dari kawasan di mana pembayaran atau servis tidak tersedia.

Namun, geo-blocking bukan pengganti sepenuhnya firewall. Lokasi IP boleh tersalah teka, boleh dielak dengan VPN/proxy, dan pengguna sah kadangkala tersilap blok. Maka, sekatan negara harus digabungkan dengan amalan utama seperti kata laluan kuat, dua faktor autentikasi, WordPress terkini, plugin selamat, SSL, dan backup berkala Sijil SSL.

Bagaimana .htaccess Menggunakan Data Negara?

.htaccess ialah fail konfigurasi berkuasa untuk server Apache/LiteSpeed, digunakan untuk redirect, caching, izin fail, dan sekatan keselamatan. Namun, secara lalai .htaccess tidak tahu negara asal IP pelawat.

Terdapat tiga pendekatan utama untuk sekatan negara:

  • Menggunakan modul GeoIP atau MaxMind di server untuk dapatkan kod negara sebagai pemboleh ubah.
  • Menambah julat IP negara yang ingin disekat ke fail .htaccess.
  • Mengurus sekatan negara menggunakan CDN/WAF atau plugin keselamatan, dengan .htaccess untuk sokongan tambahan.

Sehingga 2026, kaedah paling stabil ialah menggunakan CDN/WAF atau GeoIP MaxMind di server. Ini kerana blok IP negara sering berubah dan ribuan baris aturan .htaccess boleh menjejaskan prestasi. Namun, untuk sekatan kecil dan terkawal, .htaccess tetap praktikal.

Langkah Penting Sebelum Memulakan

Salah edit fail .htaccess boleh buat laman anda tidak boleh diakses. Error biasa ialah 500 Internal Server Error, redirect loop, masalah wp-admin, dan error 403 yang tidak dijangka. Sebelum ubah fail secara langsung, ikut senarai semak ini:

  • Muat turun .htaccess semasa ke komputer dan buat salinan backup bertarikh.
  • Buat backup fail WordPress dan pangkalan data Pembuangan Laman Web.
  • Sahkan akses ke fail manager atau FTP dalam panel hosting.
  • Cuba satu aturan ujian dahulu; jangan tambah banyak IP/negara sekaligus.
  • Pastikan Googlebot, gateway pembayaran, integrasi penghantaran, API, dan julat IP CDN tidak terjejas.
  • Uji akses dari rangkaian berbeza; jangan hanya guna browser anda.

Biasanya, kesilapan berlaku kerana aturan diletakkan di lokasi salah. Aturan WordPress (rewrite) biasanya di antara baris BEGIN WordPress dan END WordPress. Letakkan aturan keselamatan anda di atas blok ini; kerana bila tetapan permalink disimpan, WordPress akan tulis semula bloknya.

Kaedah 1: Sekatan Negara dengan Pemboleh Ubah GeoIP/MaxMind .htaccess

Jika server anda menyediakan kod negara sebagai pemboleh ubah, anda boleh tulis aturan dalam .htaccess berdasarkan pemboleh ubah tersebut. Modul lama ialah mod_geoip; kini MaxMind GeoLite2 dan mod_maxminddb lebih biasa. Nama pemboleh ubah berbeza ikut server: GEOIP_COUNTRY_CODE, MM_COUNTRY_CODE atau GEOIP_COUNTRY_CODE_V6.

Contoh Logik

Contoh berikut mengandaikan server menghasilkan pemboleh ubah GEOIP_COUNTRY_CODE dan menyekat negara tertentu. Sebelum guna kod ini, pastikan pemboleh ubah yang disokong oleh hosting anda.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KP)$
RewriteRule ^ - [F,L]
</IfModule>

RU, CN dan KP ialah kod negara ISO 3166-1 alpha-2. Contohnya MY untuk Malaysia, ID untuk Indonesia, US untuk Amerika Syarikat. Pisahkan kod negara dengan pipe (|) untuk sekat beberapa negara sekaligus.

Sekat wp-login.php Sahaja

Daripada menutup seluruh laman, fokus kepada wp-login.php lebih sesuai untuk kebanyakan perniagaan. Misalnya, laman boleh dibaca secara global, tetapi hanya kawasan tertentu boleh akses login admin.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$
RewriteRule ^ - [F,L]
</IfModule>

Aturan ini mengecilkan permukaan serangan ke login admin, tanpa menjejaskan akses ke kandungan. Brute-force biasanya menyasar wp-login.php dan xmlrpc.php, jadi sekatan ini sangat efektif dari segi keselamatan.

Kaedah 2: Sekat Negara dengan Julat IP di .htaccess

Jika tiada pemboleh ubah GeoIP di server, anda boleh menambah julat IP negara tertentu ke .htaccess. Namun, penyelenggaraan kaedah ini sangat berat. Negara besar mempunyai ribuan blok CIDR; .htaccess yang terlalu panjang akan mengurangkan prestasi. Lagipun, alokasi IP berubah dan perlu dikemas kini secara berkala.

Untuk Apache 2.4 ke atas, gunakan Require not ip seperti berikut:

<RequireAll>
Require all granted
Require not ip 203.0.113.0/24
Require not ip 198.51.100.0/24
</RequireAll>

IP di atas hanya contoh. Bila guna data sebenar, pastikan CIDR dari sumber yang dipercayai dan terkini. Jika perlu tambah ratusan atau ribuan aturan IP, lebih baik alihkan tugas ke firewall server, WAF atau CDN.

Kaedah 3: Geo-Blocking dengan CDN/WAF, Sokongan .htaccess

Penyelesaian paling scalable ialah geo-blocking melalui CDN atau WAF seperti Cloudflare, Sucuri, LiteSpeed Web ADC, Imunify360. Sistem ini menapis permintaan sebelum sampai ke server, mengurangkan beban CPU, RAM dan proses PHP.

.htaccess masih relevan untuk pengesahan IP pelanggan sebenar dari CDN, menutup fail sensitif, atau menambah sekatan ke URL login WordPress. Tetapi geo-blocking utama sebaiknya diletak di CDN, terutama untuk laman bertrafik tinggi.

Perbandingan Kaedah

Perbandingan Kaedah
KaedahKelebihanKekuranganSesuai Untuk
GeoIP .htaccessPeraturan pantas di server; tidak bergantung plugin WordPress.Perlu modul GeoIP/MaxMind; nama pemboleh ubah berbeza ikut server.Laman Apache/LiteSpeed dengan kawalan teknikal.
IP .htaccessTidak perlu modul; sesuai untuk senarai IP kecil.Prestasi dan penyelenggaraan buruk untuk senarai besar.Pemilik laman mahu sekat blok IP terhad.
CDN/WAFPermintaan ditapis sebelum sampai server; mudah urus; ada laporan.Perlu konfigurasi tambahan; aturan salah boleh blok pengguna sah.Laman bertrafik tinggi, fokus keselamatan dan scalable.
Plugin keselamatan WordPressMudah urus dari panel; kurang perlu teknikal.Aktif selepas PHP berjalan; lebih gunakan sumber server.Laman kecil-sederhana yang tidak mahu edit kod.

Langkah Demi Langkah: Geo-Blocking Selamat dengan .htaccess di WordPress

Langkah Demi Langkah: Geo-Blocking Selamat dengan .htaccess di WordPress

1. Tentukan Sasaran Sekatan

Pilih sama ada mahu sekat seluruh laman, hanya wp-login.php, atau endpoint spesifik seperti xmlrpc.php. Sekatan seluruh laman boleh menjejaskan SEO dan pengalaman pelanggan. Fokus pada admin atau kawasan rentan biasanya lebih baik.

2. Analisis Data Trafik

Sebelum buat keputusan, semak log akses 7-14 hari, laporan plugin keselamatan dan data Analytics. Contohnya, jika hanya 3% trafik dari negara X, tetapi 60% cubaan serangan datang dari sana, sekatan masuk akal. Namun, jika 12% jualan organik dari negara sama, sekatan penuh boleh rugikan jualan.

3. Sahkan Sokongan Server

Kenal pasti server anda: Apache, LiteSpeed, atau Nginx. .htaccess hanya berfungsi di Apache/LiteSpeed; Nginx perlukan konfigurasi tersendiri. Bila memilih hosting di Hostragons, pastikan pakej WordPress selamat, backup, SSL dan fitur keselamatan Penyimpanan Web.

4. Tambah Aturan Ujian

Mulakan dengan satu negara atau satu blok IP. Letakkan aturan di atas blok WordPress dalam .htaccess. Selepas simpan, uji homepage, wp-admin, halaman produk, borang, dan proses pembayaran.

5. Pantau Log Error

Perhatikan jumlah dan sumber error 403. Jika terlalu banyak, mungkin aturan terlalu luas. Jika guna CDN, server mungkin lihat IP CDN dan bukan IP pelawat sebenar; ini boleh sebabkan deteksi negara tidak tepat.

6. Dokumentasi Aturan

Tambah komen di .htaccess: nyatakan negara, sebab sekatan, tarikh tambah, dan siapa yang luluskan. Contohnya: # 2026-02-15: Sekatan login untuk RU & CN kerana serangan brute-force.

Impak SEO: Apa Perlu Diperhatikan?

Geo-blocking boleh mempengaruhi SEO. Googlebot biasanya crawl dari IP Amerika Syarikat. Jika anda sekat negara US secara global, Google mungkin gagal crawl laman, menyebabkan kehilangan indeks, ranking, dan error di Search Console.

Tip SEO selamat:

  • Pastikan Googlebot, Bingbot dan bot enjin carian lain tidak disekat.
  • Jika target antarabangsa, uji aturan hreflang, canonical dan redirect.
  • Pastikan halaman error 403 beri mesej jelas, bukan skrin kosong.
  • Pantau Search Console Coverage, Crawl Stats dan Page Experience selepas perubahan.
  • Jangan gunakan geo-blocking untuk cloaking atau persembahan kandungan berbeza; ini berisiko penalti.

Blog global, SaaS, pelancongan dan eksport sangat perlu berhati-hati. Jika hanya mahu kurangi spam, gunakan reCAPTCHA, rate limit, plugin keselamatan atau WAF, yang kurang risiko SEO.

Adakah Geo-Blocking Cukup untuk Keselamatan?

Tidak. Geo-blocking hanya mengurangkan permukaan serangan, bukan menghalang sepenuhnya. VPN, proxy, botnet dan IP cloud boleh elak sekatan negara. Keselamatan WordPress perlu pendekatan berlapis. Gabungkan:

  • Kemas kini WordPress, tema dan plugin secara berkala.
  • Gunakan nama pengguna unik dan kata laluan kuat untuk admin.
  • Aktifkan dua faktor autentikasi.
  • Rate limit untuk wp-login.php dan xmlrpc.php.
  • Buang plugin tidak diperlukan dan elak tema dari sumber tidak dikenali.
  • Gunakan SSL untuk semua trafik HTTPS Sijil SSL.
  • Backup dan pelan pemulihan secara tetap.

Hosting yang baik ialah asas – pengasingan sumber, PHP terkini, scan malware, backup automatik dan sokongan pantas semuanya penting untuk keselamatan WordPress Hosting WordPress yang selamat.

Kesilapan Umum dan Solusi

Kesilapan 1: Senarai IP Terlalu Panjang dalam .htaccess

Ribuan aturan IP akan diproses setiap permintaan, menjejaskan prestasi. Untuk senarai besar, urus di peringkat CDN/WAF atau firewall server.

Kesilapan 2: Sekat Googlebot dan Servis Integrasi

Pembayaran, e-mel, penghantaran API dan bot enjin carian boleh datang dari negara berbeza. Pantau log selepas perubahan dan whitelist servis penting.

Kesilapan 3: Mengharapkan .htaccess di Server Nginx

Nginx tidak baca .htaccess. Untuk Nginx, aturan perlu ditulis dalam konfigurasi server. Di hosting berkongsi, akses ini mungkin tiada; CDN atau plugin keselamatan lebih sesuai.

Kesilapan 4: Edit Fail Langsung Tanpa Backup

Kesilapan kecil boleh buat laman tidak boleh diakses. Jika tiada backup, pemulihan akan lambat. Sebelum simpan, salin kandungan ke fail teks selamat.

Kesilapan 5: Sekat Negara Tanpa Analisis Data

Jangan sekat hanya berdasarkan andaian. Semak log, laporan keselamatan dan data penukaran dahulu. Jika perlu, sekat hanya wp-login.php atau endpoint borang tertentu.

Alternatif: Plugin, Firewall & Penyelesaian Server

Jika tidak mahu edit kod, plugin keselamatan WordPress boleh menawarkan geo-blocking. Namun, plugin biasanya aktif selepas PHP berjalan, jadi bot trafik tinggi tidak ditapis seawal .htaccess atau WAF. Untuk laman kecil, plugin memudahkan pengurusan.

Di peringkat server, anda boleh gunakan CSF, firewalld, iptables atau panel hosting untuk blok IP/CIDR. Kaedah ini lebih awal berbanding .htaccess. Tetapi, pengguna hosting berkongsi biasanya tiada akses; hubungi sokongan Hostragons untuk solusi keselamatan atau pertimbangkan hosting terurus Pakej Hosting.

Senarai Semak Selepas Geo-Blocking

Selepas tambah aturan geo-blocking, jangan anggap selesai sebelum lakukan:

  • Uji homepage, kategori, post, produk dan halaman shopping cart.
  • Sahkan akses wp-admin dan wp-login.php dari negara yang dibenarkan.
  • Cuba borang hubungan, daftar ahli dan proses pembayaran.
  • Gunakan Search Console untuk live URL test.
  • Semak log error server bagi peningkatan 500 atau 403.
  • Bersihkan cache CDN dan pastikan IP sebenar pelawat diterima server.
  • Dokumentasikan tujuan dan tarikh aturan dalam nota pasukan.

Langkah ini sangat penting untuk laman WordPress yang menjana pendapatan. Aturan geo-blocking yang nampak mudah boleh memberi impak pada pembayaran, skor iklan, servis e-mel atau integrasi API API dan Integrasi.

Soalan Lazim

Bolehkah sekat negara tertentu dengan .htaccess di WordPress?

Boleh, dengan syarat server ada pemboleh ubah GeoIP/MaxMind atau julat IP negara dimasukkan dalam aturan. .htaccess sendiri tidak tahu negara asal IP tanpa data tambahan.

Adakah geo-blocking dengan .htaccess menjejaskan SEO?

Boleh berlaku jika aturan salah, terutamanya jika blok negara di mana Googlebot crawl. Sekat hanya endpoint sensitif seperti wp-login.php lebih selamat berbanding seluruh laman.

Kod negara mana patut digunakan?

Kod negara ISO 3166-1 alpha-2 biasa digunakan: MY untuk Malaysia, DE untuk Jerman, US untuk Amerika Syarikat, FR untuk Perancis. Sahkan format kod dan pemboleh ubah dengan konfigurasi GeoIP server anda.

Bolehkah geo-blocking .htaccess digunakan di server Nginx?

Tidak. Nginx tidak baca .htaccess. Untuk Nginx, guna konfigurasi server, modul map/geo, WAF, CDN atau plugin keselamatan WordPress.

Adakah geo-blocking boleh halang serangan VPN?

Tidak sepenuhnya. VPN, proxy, botnet boleh guna IP luar negara sebenar. Geo-blocking cuma satu lapisan; gabungkan dengan dua faktor login, WAF, update, kata laluan kuat dan backup.

Ringkasan & Langkah Seterusnya

Sekatan negara melalui .htaccess di WordPress, jika dikonfigurasi dengan betul, boleh mengurangkan spam, brute-force dan trafik tidak perlu. Amalan terbaik ialah analisis data, sekat hanya apa yang perlu, backup, uji dan pantau log. Untuk keperluan sekatan negara berskala besar, CDN/WAF atau penyelesaian server lebih disarankan. Jika anda cari hosting WordPress yang selamat, pantas dan stabil, tinjau pakej hosting, domain dan SSL Hostragons serta rancang dengan tenang untuk konfigurasi optimum Semakan domain Hosting WordPress.

Kongsikan artikel ini:

Pasukan Hostragons

Panduan terkini daripada pasukan pakar kami tentang pengehosan, pelayan dan nama domain. Mari kita cari penyelesaian yang tepat untuk projek anda bersama-sama.

Hubungi Kami