File .htaccess adalah file konfigurasi yang disediakan oleh web server Apacehe yang bertujuan untuk mengubah settingan default Apache server itu sendiri. Sebagai pengelola web/webmaster, sudah seharusnya kita dapat memanfaatkan fitur ini agar bisa mengubah settingan default server tersebut. Banyak manfaat, terutama dari sisi keamanan, yang dapat dilakukan dengan memodifikasi isi file .htaccess tersebut.
Pada dasarnya file .htaccess ini merupakan file teks berformat ASCII sederhana yang biasanya diletakkan dalam root direktori. Harus ditampilkan dalam format ASCII dan bukan binary, serta file permission (atribut file) pada server hosting harus di set sebagai 644 (rw-r-r). Hal ini dimaksudkan supaya server dapat mengakses file .htaccess, tatapi mencegah user untuk mengakses file .htaccess dari browser mereka. Untuk diketahui, bahwa file .htaccess ini dapat digunakan untuk melakukan konfigurasi subdirektori-subdirektori yang ada di dalamnya, sehingga kita hanya cukup mempunyai satu file .htaccess saja yang diletakkan pada root direktori.
Kode perintah dalam file .htaccess harus ditempatkan dalam satu baris. Untuk itu, jika kita membuat file .htaccess menggunakan teks editor (seperti Notepad), maka kita harus men-disable fungsi word wrap (memotong baris) terlebih dahulu.
Beberapa contoh penggunaan File .htaccess :
1. Customize Error Message
Dengan fungsi ini kita dapat mengubah halaman error pada server, yaitu
dengan mendefinisikan sesuai dengan keinginan kita sendiri.
2. Override SSI Settings
Default nya, hanya halaman web yang berekstensu .shtml
yang daoat menjalankan server-side termasuk SSI di server. Dengan
menggunakan .htaccess kita dapat mengubah setting default tersebut agar
SSI dapat bekerja dengan format HTML. Untuk mengubah settingan tersebut,
kita dapat menambahkan kode berikut pada file .htaccess.
AddType text/html .html AddHandler server-parsed .html
Apabila kita menginginkan halaman yang berekstensi .html dan .htm untuk dapat menjalankan file .htaccess, maka dapat ditambahkan kode berikut :
AddType text/html .html AddHandler server-parsed .html AddHandler server-parsed .htm
3. Change Default Homepage
Fungsi ini digunakan untuk mengubah nama default halaman depan web. Sebagai contohnya yaitu ketika user hanya diijinkan untuk bisa mengakses melalui nama domain saja (http://www.namawebkamu.com) tanpa harus menulis nama file secara jelas (http://www.namawebkamu.com/index.html). Untuk itu, kita juga harus mempunyai file index tersebut di root direktori. Nama file yang dapat diterima antara lain yaitu index.html, index.htm, index.cgi, index.php, dll. Pastikan saja bahwa file tersebut bernama index.*.
Dalam pemberian nama tersebut ada tingkatan yang harus dipatuhi. Apabila kita mempunyai index.cgi dan index.html di root direktori, maka server akan menampilkan index.cgi karena .cgi memiliki tingkatan yang lebih tinggi daripada .html.
Dengan .htaccess, web programmer dapat mendefinisikan file index tambahan atau bisa juga mengubah urutan tingkatannya. Misalnya untuk mendefinisikan depan.html sebagai halaman index, kita dapat menambahkan kode berikut pada file .htaccess :
DirectoryIndex depan.html
Kode tersebut akan memerintahkan server untuk mencari file bernama depan.html. Jika server menemukan file tersebut, maka server akan menampilkan halaman yang dimaksud. Namun, apabila tidak, maka akan menampilkan error 404 Missing Page.
Untuk mengubah urutan tingkatan, kita dapat memasukkan perintah DirectoryIndex dengan nama-nama file dalam satu baris. Urutan penulisan file tersebut menentukan urutan tingkatan akses file yang dimaksud (yang pertama ditulis akan diakses terlebih dahulu), misalnya :
DirectoryIndex depan.html, index.cgi, index.php, index.html
4. Enable Directory Browsing
Untuk alasan keamanan, server Apache biasanya telah menghilangkan default setting yang memungkinkan directory indexing. Opsi inilah yang memungkinkan isi direktori untuk ditampilkan ke dalam browser jika direktori tersebut tidak mempunyai halaman index.
Misalnya apabila kita memasukkan sebuah URL yang tidak mempunyai halaman index, seperti http://www.namadomainmu.com/images/, maka browser akan menampilkan daftar images di dalam direktori tersebut.
Jadi, apabila kita memiliki banyak file pada direktori tertentu, maka untuk mencegah pengunjung melihat keseluruhan dari isi direktori tadi maka kita perlu menambahkan file index.php pada setiap direktori akan tetapi hal ini tidak mungkin dilakukan dan sebagai gantinya kita hanya perlu menambahkan kode berikut ini:
Options All -Indexes
Sehingga setiap pengunjung yang mengetikkan url seperti ini, misalnya: http://namadomainmu.com/images maka akan timbul pesan error “404″ atau langsung meredirek pada halaman lain sesuai dengan pengaturan yang kita lakukan.
5. Block Users form Accessing Your Website (Memblokir alamat IP tertentu)
File .htaccess dapat digunakan untuk memblokir alamat IP tertentu ketika mengakses ke alamat kita. Kita dapat memblok akses untuk beberapa user sekaligus, baik melalui alamat IP maupun domain name.
Contoh kode yang dapat digunakan yaitu sbb:
order deny,allow deny from 111.234.222.111 deny from 234.321.22. deny from .avrakadavra.com allow from all
Contoh di atas berarti bahwa :
- Alamat IP 111.234.222.111 akan diblok
- Semua user dengan alamat IP antara 234.321.22. hingga 234.321.22.999 akan diblok
- Semua user yang berasal dari .avrakadavra.com akan diblok.
6. Redirect Visitors to a New Page or Directory
Fungsi ini sangat berguna ketika kita membuat ulang seluruh website kita, me-rename halaman dan direktori, sehingga pengunjung akan menemuai halaman lama dalam keadaan error 404 File Not Found. Untuk mengatasi masalah tersebut, dapat dilakukan dengan cara melakukan redirect dari halaman lama ke halaman yang baru. Misalnya apabila halaman lama kita adalah halamanlama.html dan halaman baru adalah halamanbaru.html, maka perintahnya adalah:
Redirect permanent /halamanlama.html http://www.namadomainkamu.com/halamanbaru.html
Jika kita me-rename (mengganti nama) direktori, maka perintahnya adalah:
Redirect permanent /direktorilama http://www.namadomainkamu.com/direktoribaru
Untuk diperhatikan, bahwa nama direktori yang lama ditulis dengan relative path dan yang baru ditulis dengan absolute path.
Selain itu kita juga dapat melakukan redirek halaman ketika kita akan melakukan perbaikan pada website atau blog kita, dan agar pengunjung langsung menuju ke halaman yang telah kita tentukan maka kita perlu menambahkan kode berikut ini:
order deny,allow deny from all allow from 222.222.222.222 ErrorDocument 403 /download.html <Files download.html> allow from all </Files>
Ketika pengunjung lain yang datang akan langsung melihat halaman download.html sedangkan alamat IP 222.222.222.222 (misalnya alamat IP punya kita) dapat mengakses website dengan normal (bukan halaman download.html).
7. Prevent Hot Linking and Bandwidth Leeching
Untuk mencegah orang lain me-link secara langsung ke direktori image kita dari website orang lain, seperti misalnya ketika ada orang mengambil gambar dari website kita, tetapi tetap menggunakan link di server host kita, maka akan merugikan kita karena dapat mengurangi bandwidth di hosting kita. Untuk mengatasi hal ini, kita dapat menambahkan kode berikut:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?namadomainmu.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F]
Perintah di atas akan membuat direktori image hanya bisa diakses apaila user sedang mengakses www.namadomainmu.com. Namun, apabila kita masih merasa jengkel, kita juga dapat membuat sebuah image alternatif bila direktori image di-link oleh orang lain. Misalnya kita membuat image alternatif dengan nama noimage.gif yang bertuliskan: "Gambar dari web lain... kunjungi http://namadomainmu.com untuk melihat gambar sebenarnya." Untuk itu kita dapat menambahkan kode berikut :
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?namadomainmu.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.namadomainmu.com /noimage.gif [R,L]
8. Prevent Viewing of .htaccess or other files
Untuk mencegah user mengakses file .htaccess, maka dapat diketikkan perintah sbb:
order allow, deny deny from all
9. Pengaturan Permalink
Agar kita dapat melakukan pengaturan pada permalink kita agar lebih SEO friendly kita dapat menambahkan kode berikut ini:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
Untuk pengaturan lain seperti hot linking protection yang sangat berguna untuk mencegah pencurian bandwidth, pengaturan password, dll Anda dapat mengunjungi .htaccess file generator online. Selain itu dapat juga kita lakukan melalui cpanel.
Dari beberapa kegunaan dari file .htaccess di atas, kita dapat mengembangkannya lebih jauh lagi sesuai dengan kebutuhan.
Sekian artikel Fungsi dan Penggunaan File HTACCESS pada Server dari saya, semoga bermanfaat.. B-)
Sumber : http://www.adityarizki.net
Makasih Infonya Om...
BalasHapusTp Perbedaan Yang jelas antara PHP dan HTML tu apa sih?
PHP adalah bahasa pemrograman yang dijalankan pada server yang terinstall web server. Artinya semua baris program akan sepenuhnya dijalankan pada web server sedangkan yang dikirimkan ke browser pengguna hanya hasilnya saja.
HapusHTML adalah bahasa standard untuk membuat halaman web statis. HTML dapat secara langsung dijalankan dan ditampilkan dengan bantuan browser.