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>