Senin, 30 Juli 2012

.Htaccess

.Htaccess

.htaccess (huruf titik, diikuti dengan deretan huruf "htaccess") adalah file yang dapat berisi perintah-perintah untuk webserver Apache. Ditaruh di sebuah direktori di bawah document root website dan akan perintah-perintah yang di dalamnya akan berefek pada file-file maupun subdirektori di bawah direktori tersebut.

Dengan .htaccess kita dapat memproteksi sebuah direktori, mengubah opsi tampilan direktori oleh Apache, mengubah asosiasi ekstensi dan handler, dll. Intinya, hampir segala sesuatu kustomisasi yang dapat dilakukan oleh Apache, dapat kita terapkan di .htaccess ini. File .htaccess adalah perpanjangan file konfigurasi Apache yang dapat tersebar di setiap direktori yang diinginkan.

File .htaccess  merupakan  sebuah text file ASCII yang terletak di dalam root directory (biasanya di dalam public_html) yang sering digunakan untuk mengubah pengaturan default dari web server yang digunakan.
File .htaccess sendiri memiliki beberapa kegunaan atau fungsi yang dapat disesuaikan sesuai kebutuhan yang kita inginkan. Adapun beberapa kegunaan dari file .htaccess tersebut antara lain adalah :
  • Melakukan blokir terhadap alamat IP tertentu, hal ini dilakukan jika kita menginginkan agar alamat IP tertentu tidak dapat melakukan akses terhadap web kita. Selain melakukan terhadap alamat IP tertentu, juga dapat melakukan blokir berdasarkan alamat website tertentu.
  • Redirect halaman, selalin melakukan blokir IP, file .htacces juga dapat di fungsikan untuk melakukan redirect sebuah web atau sebuah halaman yang terdapat pada sebuah web menuju halaman tujuan yang sudah di tentukan. Hal ini biasa dilakukan ketika sedang dilakukan perawatan website oleh pengelola website.
  • Mencegah explorasi atau melindungi directory, dengan cara ini, kita dapat melindungi directory-directory penting kita ataupun memberikan perlindungan lebih terhadap halaman administrator website kita.
  • Pengaturan permalink, fungsi ini berguna untuk mengatur permalink pada website untuk mendukung SEO agar lebih disenangi oleh search engine.

Membuat .htaccess
Di Windows

Di Windows, mungkin Anda akan mengalami sedikit kesulitan dalam membuat file ini, dikarenakan Explorer tidak mengizinkan nama file yang diawali dengan karakter titik. Sebagai solusinya, ada beberapa pilihan. Pertama, Anda dapat mencoba membuat dulu file kosong bernama ".htaccess" menggunakan DOS Prompt, caranya bukalah DOS Prompt lalu ketikkan:

copy nul .htaccess
Akan terbuat sebuah file berukuran 0 byte bernama .htaccess di direktori saat itu. Anda lalu dapat mengeditnya menggunakan Notepad atau editor lain. Atau, bukalah Notepad, ketikkan isi yang diinginkan, lalu save. Ketik ".htaccess" dengan tanda kutip gandanya dan File type diset ke All files. Klik Save/OK.
Atau, bisa juga menggunakan editor lain seperti EditPlus, yang mengizinkan nama file berawalan karakter titik.


Di server Linux
Di server Linux (mis: menggunakan SSH ke server) tidak ada masalah dalam pembuatan file ini. Cukup gunakan editor favorit Anda seperti biasa membuat file lain.

Lewat control panel
Anda juga dapat membuat file .htaccess lewat Kelola File di control panel. Jika menggunakan Spanel, misalnya, masuklah ke menu Kelola File, berpindahlah ke document root website Anda, lalu pilihlah Buat File Baru
Berbagai contoh 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.php

Command 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/ atauhttp://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://sitetujuan

Command 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.com

RewriteEngine 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 NAMAUSERWEB

di 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 .htaccess
IndexIgnore *

Jika ingin menyembunyikan file tertentu saja, misal header.html dan readme.html (pisahkan tiap nama file dengan spasi).

IndexIgnore header.html readme.html 


*Sumber :

Tidak ada komentar:

Posting Komentar