File .htaccess
adalah file konfigurasi yang sangat penting dan sering
digunakan pada server web berbasis Apache httpd. File tersebut dapat
digunakan untuk mengelola pengaturan pada tingkat direktori. File tersebut
juga memungkinkan administrator web mengonfigurasi berbagai aspek situs web
tanpa perlu mengubah pengaturan server secara keseluruhan.
Secara umum, file .htaccess
berfungsi untuk memodifikasi pengaturan di
tingkat direktori tempat file tersebut berada. Sebagai contoh, kamu dapat
menggunakannya untuk melindungi folder tertentu dengan kata sandi, membuat
pengaturan pengalihan URL, mengaktifkan atau menonaktifkan caching untuk
meningkatkan waktu muat halaman, atau bahkan membatasi akses dari alamat IP
tertentu untuk melindungi situs dari potensi serangan.
Penggunaan .htaccess
memerlukan pemahaman yang baik tentang perintah dan
sintaksisnya. Kesalahan kecil dalam penulisannya dapat menyebabkan kesalahan
server atau bahkan membuat situs web tidak dapat diakses. Oleh karena itu,
sangat dibutuhkan kehati-hatian dan pemahaman kita tentang cara kerja file
tersebut.
Berikut ini adalah tip dan trik penting yang dapat kamu terapkan untuk
penggunaan file .htaccess
, terutama untuk meningkatkan keamanan, performa,
dan SEO situs web.
Mengalihkan dari HTTP ke HTTPS
Sekarang, sangat penting untuk mengarahkan semua lalu lintas dari protokol HTTP ke protokol HTTPS. Hal tersebut tidak hanya meningkatkan keamanan situs web kita, tetapi juga dapat memberikan dampak positif terhadap peringkat situs di mesin pencari. HTTPS, yang merupakan versi aman dari HTTP, mengenkripsi data yang dikirim antara server dan pengguna, sehingga melindungi informasi sensitif seperti data pribadi dan kredensial login dari potensi ancaman peretasan dan penyadapan.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Melindungi akses ke file .httaccess
File .htaccess
sering kali berisi konfigurasi penting yang dapat
mempengaruhi seluruh pengaturan situs web kita, dan jika file ini dapat
diakses oleh orang yang salah, hal tersebut dapat membuka celah potensi
ancaman keamanan. Oleh karena itu, sangat penting untuk membatasi akses ke
file .htaccess
kita.
<Files .htaccess>
order allow,deny
deny from all
</Files>
Menolak akses ke jenis file tertentu
Kamu mungkin ingin memblokir akses ke jenis file tertentu, seperti file konfigurasi, untuk melindungi situs web kamu dari potensi risiko keamanan. Beberapa jenis file yang umumnya perlu dibatasi aksesnya antara lain file yang berisi konfigurasi server, database, atau data penting lainnya yang dapat disalahgunakan oleh pihak yang tidak bertanggung jawab.
<FilesMatch "\.(ini|log|conf)$">
Order allow,deny
Deny from all
</FilesMatch>
Mengaktifkan kompresi gzip
Kompresi gzip dapat mengurangi ukuran file yang dikirimkan server ke browser. Hal tersebut dapat mempercepat waktu pemuatan halaman situs web kita. Dengan mengaktifkan kompresi gzip, server web akan mengompresi file teks seperti HTML, CSS, dan JavaScript sebelum mengirimkannya ke pengguna. Hal tersebut tidak hanya mengurangi jumlah data yang perlu diunduh oleh browser, tetapi juga mengurangi beban pada server dan jaringan. Oleh karena itu, dapat meningkatkan pengalaman pengguna dengan mempersingkat waktu tunggu.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/javascript
</IfModule>
Set Cache-Control Headers
Caching membantu meningkatkan performa situs web kita dengan menyimpan salinan file di browser pengguna, sehingga ketika pengguna mengunjungi kembali situs web kita, file-file tersebut tidak perlu diunduh ulang dari server. Dengan cara ini, waktu pemuatan halaman menjadi lebih cepat karena sebagian besar data sudah tersedia di perangkat pengguna. Caching juga mengurangi beban pada server dan jaringan, karena server tidak perlu mengirimkan ulang file yang sama setiap kali ada permintaan dari pengguna.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>