Ada banyak cara mengoptimalkan kemudahan penggunaan dan keamanan dari sebuah website yang anda kelola. Salah satu yang paling dasar dan mudah adalah menggunakan kendali akses. Salah satunya adalah menggunakan .htaccess. .htaccess adalah file yang menyimpan pengaturan bagaimana server Apache akan memperlakukan setiap permintaan dari pengguna.

Untuk itu dalam tulisan ini saya akan memberikan beberapa tips mengenai fungsi dari .htaccess yang dapat anda gunakan untuk mengoptimalkan website anda. .htaccess dapat anda unggah pada berbagai folder di website anda. Untuk memperlakukan secara global anda dapat mengunggah .htaccess pada root direktori anda. Pengaturan berikut hanya dapat digunakan dengan modul rewrite sudah dienable pada apache anda.

Memaksa Url Menggunakan subdomain www

Tidak banyak yang tahu bahwa www. merupakan sebuah subdomain dan tidak wajib ada pada domain sebuah website. Namun karena banyak pengguna sudah terbiasa dengan penggunaan www. maka beberapa website langsung redirect halaman berandanya dengan subdomain www dengan berbagai alasan salah satunya agar alamat website lebih enak dilihat (tapi sepertinya saat ini hal ini tidak berlaku lagi). Cara agar domain dapat redirect secara otomatis ke subdomain www. adalah dengan menggunakan .htaccess. Maka anda dapat menggunakan pengaturan berikut untuk memaksa domain menuju subdomain www.

.htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} ^nama_domain.com$
RewriteRule ^/?$ "http\:\/\/www\.nama_domain\.com\/" [R=301,L]

Memaksa Url Menggunakan https:// atau SSL

Saat ini isu penggunaan https atau sertifikat SSL untuk memberikan lalu lintas data yang lebih aman banyak dibicarakan. Bahkan Jeff Atwood (@codinghorror) membuat dua tulisan mengenai "Haruskah Semua Lalu Lintas Web di Enkripsi?" dan "Ayo enkripsi semuanya!!" menyebutkan bahwa enkripsi sudah harus menjadi semacam standar baru bagi sebuah web. Firefox pun sudah mulai memberikan peringatan apabila terdapat website yang mengharuskan kita login tetapi website tersebut tidak menggunakan lalu lintas data yang aman.

Atas alasan tersebut maka beberapa project saya seperti https://repopknstan.org mulai menggunakan https. Untuk memaksa pengguna menggunakan https maka kita dapat menggunakan setting berikut pada .htaccess.

.htaccess

RewriteEngine on

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://nama_domain.com/$1 [R,L]

Pengaturan diatas akan memaksa setiap permintaan pada port 80 (http) untuk diarahkan ke port 443 (https). Jika anda ingin mengubah permintaan terhadap domain tertentu saja di website anda untuk diarahkan ke https maka pengaturan yang digunakan sebagai berikut.

.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^nama_domain\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://nama_domain.com/$1 [R,L]

Dan jika anda ingin menggunakan https hanya pada folder tertentu saja maka anda dapat menggunakan pengaturan berikut.

.htaccess

RewriteEngine
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} folder 
RewriteRule ^(.*)$ https://nama_domain.com/folder/$1 [R,L]

 Menghapus Kata Tertentu dalam Url

Salah satu manfaat lain dari .htaccess yaitu dapat digunakan untuk menghapus kata tertentu dalam url. Hal ini bermanfaat terutama saat menggunakan webframework agar kita dapat memperoleh url yang enak dibaca. Contoh dalam hal ini adalah menghapus index.php dalam url (contoh dalam website ini, sebelum judul artikel pada url ada index.php. Ini dapat dihapus namun demi kemaslahatan pagerank saya tidak menghapusnya). Untuk menghilangkan index.php dari url maka dapat digunakan pengaturan berikut.

.htaccess

RewriteEngine
# Jika file atau direktori ada maka tidak menghapus index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# sebaliknya jika hanya url dan tidak ada direktori maka hilangkan index.php
RewriteRule . index.php

Mencegah Pengguna melihat Daftar Direktori folder/file/index

Apabila kita membuka folder yang tidak memiliki index maka kita akan melihat daftar file/folder dalam direktori tersebut. Ini tentunya tidak aman bagi website kita karena pengguna dapat melihat folder yang seharusnya tidak dapat mereka akses. Untuk mencegah user mengakses direktori dari folder tersebut maka kita dapat menggunakan pengaturan berikut.

.htaccess

<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>

Menambah Pengamanan pada Cookie

Jika website anda menggunakan cookie, anda dapat menambah pengamana pada cookie anda melalui .htaccess. Pengamanan pada cookie dapat dilakukan dengan membuat session cookie hanya dari httponly. Pengaturannya adalah sebagai berikut.

.htaccess

<IfModule php5_module>
#jika menggunakan php7 maka ganti php5 dengan php7 php_value session.cookie_httponly true </IfModule>

Itulah tadi beberapa pengaturan yang dapat anda gunakan dengan menggunakan .htaccess pada website anda. Semoga berguna dan happy coding!


Sumber:

http://webtips.krajee.com/top-5-apache-settings-new-yii-2-app/

https://idcloudhost.com/mengenal-apa-itu-htaccess-dan-fungsinya/