15 Cuplikan .htaccess yang Bermanfaat untuk Situs WordPress Anda
Memiliki sebuah file .htaccess yang terkonfigurasi dengan baik Sangat penting jika Anda ingin meningkatkan keamanan dan mengurangi kerentanan di situs WordPress Anda. Biasanya, tujuan utama menciptakan a file .htaccess khusus adalah untuk mencegah situs Anda diretas, tetapi juga merupakan cara terbaik untuk menangani arahan ulang dan mengelola tugas yang berhubungan dengan cache.
.htaccess adalah a file konfigurasi digunakan di server web Apache. Sebagian besar situs WordPress berjalan di server Apache, meskipun sebagian kecil didukung oleh Nginx. Di artikel ini, Anda dapat menemukan a kumpulan potongan kode .htaccess, sebagian besar yang dapat Anda gunakan untuk mengamankan situs web Anda sementara sisanya mengimplementasikan fitur berguna lainnya.
Jangan lupa buat cadangan file .htaccess sebelum Anda mengeditnya sehingga Anda selalu bisa kembali ke versi sebelumnya jika ada yang salah.
Dan, jika Anda seseorang yang lebih suka tidak menyentuh file konfigurasi, saya sarankan Anda Keamanan BulletProof plugin yang merupakan yang paling dapat diandalkan (dan mungkin yang tertua) plugin keamanan .htaccess gratis di pasar.
Buat WP .htaccess default
.htaccess berfungsi pada a basis per-direktori yang berarti bahwa setiap direktori dapat memiliki file .htaccess sendiri. Dapat dengan mudah terjadi bahwa situs WordPress Anda belum memiliki file .htaccess. Jika Anda tidak menemukan file .htaccess di direktori root Anda buat file teks kosong dan beri nama untuk .htaccess
.
Di bawah, Anda dapat menemukan default .htaccess WordPress menggunakan. Setiap kali Anda membutuhkan kode ini, Anda dapat dengan cepat mencarinya di Codex WordPress. Perhatikan bahwa ada .htaccess berbeda untuk WP Multisite.
# MULAI WordPressRewriteEngine Pada RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
Baris dimulai dengan #
adalah komentar. Jangan edit apa pun yang tersirat # MULAI WordPress
dan # END WordPress
. Tambahkan aturan .htaccess kustom Anda di bawah aturan standar ini.
Semua cuplikan kode dapat Anda temukan di artikel ini buka file inti .htaccess ditemukan di direktori root Anda.
1. Tolak akses ke semua file .htaccess
Kode di bawah ini menolak akses ke semua file .htaccess yang telah Anda instal di WordPress Anda. Dengan cara ini Anda dapat mencegah orang lain melihat Anda konfigurasi server web.
# Menolak akses ke semua file .htaccessOrder Allow, Deny Deny dari all Satisfy all
2. Lindungi konfigurasi WP Anda
Itu wp-config.php
file berisi semua konfigurasi WP Anda, termasuk login dan kata sandi basis data Anda. Anda dapat menolaknya dari semua orang atau beri izin kepada admin untuk mengaksesnya.
Jika Anda memilih yang terakhir komentar itu # Izinkan dari xx.xx.xx.xxx
baris (hapus #
dari awal baris) dan masukkan alamat IP admin di tempat xx.xx.xx.xxx
.
# Melindungi wp-configPesanan Diizinkan, Tolak # Boleh dari xx.xx.xx.xxx # Bolehkan dari yy.yy.yy.yyy Tolak dari semua
3. Mencegah serangan DDoS XML-RPC
WordPress mendukung XML-RPC secara default, yang merupakan antarmuka yang membuat penerbitan jauh mungkin. Namun, meskipun ini adalah fitur yang hebat, itu juga salah satu kerentanan keamanan terbesar WP seperti halnya peretas mengeksploitasinya untuk serangan DDoS.
Jika Anda tidak ingin menggunakan fitur ini lebih baik untuk adil nonaktifkan itu. Sama seperti sebelumnya, Anda bisa tambahkan pengecualian dengan berkomentar itu # Izinkan dari xx.xx.xx.xxx
line dan menambahkan IP dari admin Anda.
# Melindungi XML-RPC, mencegah serangan DDoSPesan Tolak, Bolehkan # Boleh dari xx.xx.xx.xxx # Bolehkan dari yy.yy.yy.yyy Tolak dari semua
4. Lindungi area admin Anda
Itu juga ide yang bagus lindungi area admin dengan memberikan akses hanya ke administrator. Di sini, jangan lupa tambahkan setidaknya satu “Mengizinkan” pengecualian jika tidak, Anda tidak akan dapat mengakses admin sama sekali.
# Melindungi area admin dengan IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "WordPress Admin Access Control" AuthType BasicPesan Tolak, Bolehkan Tolak dari semua Bolehkan dari xx.xx.xx.xxx Bolehkan dari yy.yy.yy.yyy
5. Cegah daftar direktori
Sebagian besar situs WordPress tidak menonaktifkan daftar direktori, yang berarti siapa pun bisa telusuri folder dan file mereka, termasuk unggahan media dan file plugin. Tidak perlu dikatakan bahwa ini adalah kerentanan keamanan yang sangat besar.
Di bawah ini, Anda dapat melihat bagaimana a Seperti daftar direktori WordPress.
Untungnya, Anda hanya perlu satu baris kode untuk memblokir fitur ini. Cuplikan kode ini akan mengembalikan pesan kesalahan 403 kepada siapa saja yang ingin mengakses direktori Anda.
# Mencegah daftar direktori Pilihan -Index
6. Mencegah pencacahan nama pengguna
Jika WP permalink diaktifkan, itu cukup mudah sebutkan nama pengguna menggunakan arsip penulis. Nama pengguna yang terungkap (termasuk nama pengguna admin) kemudian dapat digunakan di serangan brute force.
Masukkan kode di bawah ini ke file .htaccess Anda ke cegah pencacahan nama pengguna.
# Mencegah pencacahan nama pengguna RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Blokir spammer dan bot
Terkadang Anda mungkin ingin batasi akses dari alamat IP tertentu. Cuplikan kode ini memberikan cara mudah untuk memblokir spammer dan bot yang sudah Anda kenal.
# Blok spammer dan botPesanan Diizinkan, Deny Deny dari xx.xx.xx.xxx Deny dari yy.yy.yy.yyy Bolehkan dari semua
8. Mencegah hotlinking gambar
Meski bukan ancaman keamanan, hotlinking gambar masih merupakan hal yang menjengkelkan. Orang tidak hanya gunakan gambar Anda tanpa izin Anda tetapi mereka bahkan melakukannya dengan biaya Anda. Dengan beberapa baris kode ini, Anda dapat melindungi situs Anda dari hotlinking gambar.
# Mencegah hotlink gambar RewriteEngine di RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Yourwebsite.com [NC] RewriteCond% HTTP_REFERER! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Batasi akses langsung ke file plugin & tema PHP
Itu bisa berbahaya jika seseorang langsung memanggil plugin dan file tema Anda, apakah itu terjadi secara tidak sengaja atau oleh penyerang jahat. Cuplikan kode ini berasal dari perusahaan keamanan situs web Acunetix; Anda dapat membaca lebih lanjut tentang kerentanan ini di posting blog mereka.
# Membatasi akses ke file PHP dari direktori plugin dan tema RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / ke / kecualikan \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / direktori / ke / exclude / RewriteRule wp-content / plugins / (. * *. php) $ - [R = 404, L] RewriteCond% REQUEST_URI! ^ / wp-content / tema / file / ke / kecualikan \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / themes / direktori / ke / mengecualikan / RewriteRule wp-content / themes / (. * *. Php) $ - [R = 404, L]
10. Siapkan pengalihan permanen
Anda bisa dengan mudah menangani pengalihan permanen dengan .htaccess. Pertama, Anda harus menambahkan URL lama, kemudian ikuti URL baru yang mengarah ke halaman yang Anda inginkan untuk mengarahkan pengguna.
# Pengalihan permanen Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Redirect 301 / oldurl2 / http://yoursite.com/newurl2
11. Kirim pengunjung ke halaman pemeliharaan
Kami menulis tentang teknik ini secara rinci di sini. Anda membutuhkan halaman perawatan terpisah (maintenance.html
dalam contoh) agar aturan .htaccess ini berfungsi. Kode ini menempatkan situs WordPress Anda ke mode pemeliharaan.
# Redirect ke halaman pemeliharaanRewriteEngine di RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | gif | ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Batasi semua akses ke WP termasuk
Itu / wp-termasuk /
map berisi file inti WordPress yang diperlukan agar CMS bekerja. Tidak ada konten, plugin, tema, atau apa pun yang ingin diakses pengguna di sini. Jadi untuk memperketat keamanan, yang terbaik adalah batasi semua akses ke sana.
# Blok semua wp-termasuk folder dan fileRewriteEngine Pada RewriteBase / RewriteRule ^ wp-admin / termasuk / - [F, L] RewriteRule! ^ Wp-include / - [S = 3] RewriteRule ^ wp-include / [^ /] + \. Php $ - [F, L] RewriteRule ^ wp-include / js / tinymce / langs /.+ \. Php - [F, L] RewriteRule ^ wp-include / theme-compat / - [F, L]
13. Blok skrip lintas situs (XSS)
Cuplikan kode berikut ini dari WP Mix dan melindungi situs Anda beberapa serangan XSS umum, yaitu suntikan skrip dan upaya untuk memodifikasi variabel global dan permintaan.
# Memblokir beberapa serangan XSSRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALS (= | \ [| \% [0-9A-Z] 0,2) [ATAU] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Aktifkan cache browser
Seperti yang saya sebutkan sebelumnya, .htaccess tidak hanya baik untuk alasan keamanan dan pengalihan tetapi juga dapat membantu Anda kelola cache. Cuplikan kode di bawah ini berasal dari Tema Elegan dan itu memungkinkan caching peramban dengan memungkinkan pengunjung untuk simpan jenis file tertentu, jadi lain kali mereka mengunjungi mereka tidak perlu mengunduhnya lagi.
# Mengaktifkan cache browserExpiresActive On ExpiresByType image / jpg "akses 1 tahun" ExpiresByType image / jpeg "akses 1 tahun" ExpiresByType image / gif "akses 1 tahun" ExpiresByType image / png "akses 1 tahun" ExpiresByType text / css "akses 1 bulan" ExpiresByType text / css "akses 1 bulan" pdf "akses 1 bulan" KedaluwarsaByType teks / x-javascript "akses 1 bulan" Aplikasi KedaluwarsaByType / x-shockwave-flash "akses 1 bulan" KedaluwarsaByType gambar / x-ikon "akses 1 tahun" Kedaluwarsa "akses 2 hari"
15. Siapkan halaman kesalahan khusus
Anda dapat menggunakan .htaccess untuk mengatur halaman kesalahan khusus di situs WordPress Anda. Agar metode ini berfungsi, Anda juga harus melakukannya buat halaman kesalahan khusus (custom-403.html
, custom-404.html
dalam contoh) dan unggah mereka ke folder root Anda.
Anda dapat mengatur halaman kesalahan khusus untuk kode status kesalahan HTTP apa pun (4XX dan 5XX kode status) yang Anda inginkan.
# Menyiapkan halaman kesalahan khusus ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html