File .htaccess adalah file konfigurasi yang
disediakan oleh web server Apache, yang biasanya digunakan untuk
mengubah settingan default dari Apache. Kita ketahui bahwa sebagian
besar hosting web di internet menggunakan Apache sebagai servernya
sehingga bagi para pengelola web / webmaster sedikit banyak harus
belajar tentang .htaccess agar kita bisa mengubah settingan default dari
server.
File .htaccess merupakan file teks ASCII sederhana yang biasanya diletakkan dalam root direktori. File ini diharuskan dalam format ASCII dan bukan binary dan untuk file permission (atribut file) pada server hosting harus di set 644 (rw-r-r). Hal tersebut dimaksudkan agar server dapat mengakses file .htaccess, tapi mencegah user untuk mengakses file .htaccess dari browser mereka. File .htaccess yang diletakkan dalam root direktori dapat digunakan untuk mengubah konfigurasi dari subdirektori-subdirektori yang ada didalamnya, sehingga dalam satu website biasanya kita cukup untuk mempunyai 1 file .htaccess saja yang diletakkan dalam root direktori.
Kode perintah dalam file .htaccess harus ditempatkan dalam satu baris, jadi apabila kita membuat file .htaccess dengan menggunakan text editor seperti notepad maka kita harus mendisable fungsi word wrap (memotong baris) terlebih dahulu.
Beberapa penggunaan Htaccess:
Memblokir IP tertentu
deny from 1.2.3.4 deny from 1.2.5.
Memblokir file berakhiran tertentu
File tertentu kadang berisi informasi sensitif seperti password, dll yang perlu kita blokir dari pengunjung. Tentu saja alternatif lainnya adalah jangan menaruh file itu di bawah Docroot :-)<Files *.conf> deny from all </Files>
Memblokir browser (user agent) tertentu
Kadang-kadang ada sebuah bot atau penyerang tertentu yang dapat diidentifikasi User-Agent-nya, dan dapat kita blokir. Untuk melihat User-Agent pengakses, bisa melihat dari log mentah.Misalnya kita ingin memblokir crawler Google dan Yahoo! (Slurp). Di .htaccess, tambahkan:
SetEnvIf User-Agent "(googlebot|Slurp)" crawler deny from env=crawler'crawler' dapat diganti kata lain yang sesuai. Anda dapat menambahkan baris-baris User-Agent berikutnya, atau menambahkan kata kunci di regex User-Agent yang sama.
Mengganti default halaman directory
DirectoryIndex awal.html index.html index.phpCommand di atas berguna untuk memberitahu pilihan nama file yang akan dipilih oleh webserver Apache jika sebuah URL diakses tanpa akhiran nama file (mis: http://tokoku.com/ atau http://tokoku.com/subdir/). File yang pertama dibuka pada contoh di atas adalah awal.html, dan jika tidak ada maka akan mencari index.html, dan seterusnya.
Jika semua tidak ada, barulah autoindex ditampilkan.
Redirect ke URL
Berguna untuk "melemparkan" pengunjung ke halaman atau website lain.Redirect / http://sitetujuanCommand diatas akan mengarahkan URL yang kita akses ke URL site tujuan.
Redirect ke www
Berguna bila Anda ingin agar saat user mengakses domain Anda tanpa www langsung dialihkan ke www. Misal, tokoku.com maka akan dialihkan ke www.tokoku.comRewriteEngine on RewriteCond %{HTTP_HOST} ^tokoku\.com$ [NC] RewriteRule ^(.*) http://www.tokoku.com/$1 [L,R=301]PERHATIAN: Bila Anda sudah memiliki file .htaccess dengan konfigurasi yang lain maka Anda cukup masukkan baris ke-2 dan ke-3 di bawah bagaian RewriteEngine on
Password folder
Silahkan buat .htaccess di direktori yang ingin diprotek. Kalau ingin memprotek dari http://SITENAME/ (dari halaman depan), maka taruh file .htaccess di /s/SITENAME/www/. Isi file ini sbb:AuthName "sembarang nama, sebagai contoh: area terlarang!" AuthType basic AuthUserFile /s/SITENAME/www/.htpasswd require valid-user(tentu saja SITENAME diganti dengan nama situs yang sebetulnya). Setelah itu, buatlah .htpasswd dari shell dengan perintah:
htpasswd -c /s/SITENAME/www/.htpasswd NAMAUSERWEBdi mana NAMAUSERWEB diganti yang sebenarnya, mis: snoopy. Lalu akan ditanya password. Lalu coba sekarang refresh http://SITENAME/ maka akan muncul kotak dialog password.
Menyembunyikan Isi Direktori
Jika ingin isi suatu direktori tidak ingin ditampilkan tambahkan baris di .htaccessIndexIgnore *Jika ingin menyembunyikan file tertentu saja, misal header.html dan readme.html (pisahkan tiap nama file dengan spasi).
IndexIgnore header.html readme.html