Breaking News
Loading...
Tuesday, October 28, 2014

pengertian dan pemanfaatan file htacces

11:51 AM
Pengertian .htaccess
 File .htaccess (selanjutnya akan disebut htaccess saja) sendiri sebenarnya hanyalah sebuah file teks dalam format ASCII. Fungsi sebenarnya, dalam server Apache, file ini akan dibaca pertama kali sebelum request diproses ke file yang dikehendaki. Htaccess juga dapat digunakan untuk meng-override konfigurasi server untuk mengaktifkan ataupun menonaktifkan fitur-fitur dan berbagai fungsi lainnya.
        Bahkan, htaccess akan dapat mengarahkan file mana yang akan diakses meskipun
request-nya berbeda. Contoh sederhananya, htaccess dapat mengarahkan request ke file
404.html bila alamat yang di-request oleh user tidak tersedia. Htaccess juga dapat digunakan
untuk memperkuat keamanan server web Anda.
        Sebagai contoh, Anda dapat mengatur HTTP Password melalui htaccess ini, sehingga
pengguna yang mengakses web Anda harus memasukkan username dan password. Anda juga
dapat mengatur apakah suatu alamat website Anda hanya dapat diakses dari alamat IP
(Internet Protocol) tertentu. Misalnya, untuk halaman admin hanya dapat diakses oleh
komputer dengan IP lokal kantor Anda.
        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 sub direktori yang ada didalamnya,
sehingga dalam satu website biasanya cukup untuk mempunyai 1 file .htaccess saja yang
diletakkan dalam root direktori.

Fungsi .htaccess

        Meskipun file ini sangat kecil tapi namun file ini memiliki banyak kegunaan serta fungsi
yang dibutuhkan oleh sistem informasi yang akan diolah, misalnya .htaccess digunakan untuk
memodifikasi termasuk tampilan 404. Beberapa fungsi dari file .htaccess adalah sebagai
berikut :
1. Memberi ijin lis directory untuk diakses.
2. merubah file ektensi.
3. mengiijinkan IP tertentu untuk mengakses website.
4. Menolak IP tertentu untuk mengakses.
5. Memodifikasi halaman 404.
6. Membuat redirect otomatis.

Lokasi .htaccess

           Htaccess dapat dengan mudah diletakkan dalam folder web Anda, dan bersifat rekursif.
Artinya, bila Anda meletakkan htaccess di folder paling atas (root) web Anda, maka perintah
yang ada di file tersebut akan berdampak ke semua sub-folder di dalamnya. Sedangkan bila
Anda meletakkan htaccess di dalam sub-folder, maka perintah di dalamnya akan meng-override
perintah yang ada di folder induknya.
          Dengan demikian, sebagai contoh bila Anda ingin menonaktifkan mode akses list folder
secara global, Anda bisa meletakkan file htaccess di root web. Kemudian bila Anda ingin
memperbolehkan salah satu folder saja bisa memungkinkan diakses untuk mendapatkan daftar
isinya, maka cukup meletakkan htaccess di dalamnya dengan perintah yang berbeda.
         Semisal alamat website Anda adalah line-a-desain.net, kemudian Anda meletakkan
htaccess di root folder, maka tentu saja akan berdampak ke folder di dalamnya seperti line-adesain.
net/about, line-a-desain.net/about/contact, dan sebagainya. Sedangkan bila Anda
meletakkan htaccess di dalam folder line-a-desain.net/about/contact (yang paling dalam), maka
bila pengguna mengaksesnya, server akan menggunakan perintah htaccess di folder itu, bukan
yang ada di root web.

Perintah .htaccess

        Htaccess memiliki banyak perintah yang bisa digunakan. Dalam artikel ini akan dibahas
sebagian perintah yang umum digunakan dalam konfigurasi website pada Apache Server. Untuk
mencobanya, yang perlu Anda lakukan adalah menginstall Apache Server di komputer Anda.
XAMPP dapat diinstal baik di sistem operasi Windows maupun Linux. Namun bila Anda
menggunakan Linux, ataupun bila mengupload file web dengan htaccess ke web server,
sebaiknya atur permission file menjadi 644.

        Perlu Anda ketahui, htaccess merupakan file yang diawali dengan titik. Pada Linux, file
dengan nama yang diawali titik dianggap sebagai hidden file, yang artinya secara default tidak
akan ditampilkan. Sedangkan pada Windows, htaccess akan dianggap sebagai file biasa yang
tidak disembunyikan. Karena itulah sebenarnya Apache server sebaiknya dijalankan pada Linux.
Setiap perintah dalam htaccess dipisahkan dalam baris yang berbeda. Karena itu
berhati-hatilah bila Anda menggunakan text editor yang menyediakan fitur word-wrap, sebab
memungkinkan terjadi kesalahan dalam pergantian baris kode. Untuk memberikan komentar,
Anda harus mengawali setiap baris komentar dengan karakter sharp “#”.

 Kegunaan dalam bentuk script .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.
Apabila alamat-alamat yang tidak diijinkan untuk mengakses web kita berusaha
mengakses web kita, maka akan tampil secara otomatis error 403 Forbidden (“You do not have
permission to access this site”).

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 sebagai
berikut :
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.

10. Mime Types
Memerintahkan server untuk mengenali jenis file-file yang belum didaftarkan dalam
sistem server. Contohnya :

AddType application/octet-stream .doc .xls .pdf

11. Cache Control
htaccess bisa mengendalikan caching pada web browser sehingga dapat mengurangi
penggunaan bandwidth atau aktivitas yang ada didalam server. Contohnya :

# 480 weeks
Header set Cache-Control "max-age=290304000, public"
# 2 DAYS
Header set Cache-Control "max-age=172800, public, mustrevalidate"
# 2 HOURS
Header set Cache-Control "max-age=7200, must-revalidate"

12. Memblok bot dan program crawler
Apabila Anda memiliki web server dengan bandwidth yang terbatas, alangkah baiknya
bila Anda mencegah bot atau program crawler lainnya (biasanya disebut spider) mengakses
web Anda. Perlu diketahui bahwa setiap request yang diterima oleh web server, selalu
menyertakan informasi User Agent. Bila melakukan browsing biasa, maka User Agent bisa
berarti browser yang digunakan oleh pengguna. Contoh kode yang bisa Anda gunakan adalah
sebagai berikut.


<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|
sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures)
HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman)
HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>

Untuk mengoptimalkan kode di atas, Anda harus memiliki daftar jenis User Agent yang
memang benar-benar bot atau crawler. Silahkan Anda tambahkan sendiri User Agent di kode
tersebut dengan mencari referensi di Internet.

13. Mengubah timezone server
Setting timezone server sangat menentukan ketika memanggil fungsi yang berhubungan
dengan waktu, seperti “mktime”. Bila setting yang ada di server tidak benar, akan muncul
berbagai masalah kevalidan waktu. Untuk itu, Anda bisa mengaturnya pada htaccess dengan
kode sebagai berikut.

SetEnv TZ Australia/Melbourne


Daftar timezone yang bisa digunakan bisa Anda temukan pada alamat di bagian akhir
artikel ini.

14. Mencegah penampilan daftar direktori
Biasanya, bila dalam sebuah folder web Anda tidak memiliki file index.html atau
index.php, maka secara default browser akan menampilkan daftar file dalam folder itu saat
pengguna mengaksesnya. Ini bisa jadi sebuah fitur yang bagus, namun terkadang bisa
menyerempet ke masalah keamanan data. Secara default, server XAMPP memperbolehkan
akses daftar folder. Kode untuk mengaktifkannya dalam htaccess adalah seperti berikut.

Options +Indexes
Sedangkan untuk menonaktifkannya, Anda bisa menggunakan kode berikut.
Options –Indexes

Htaccess tidak hanya sekedar mengaktifkan atau menonaktifkan saja. Bila Anda
mengaktifkan fitur directory listing, Anda juga bisa mencegah file tertentu untuk tidak
ditampilkan. Contohnya adalah sebagai berikut.

IndexIgnore *.gif *.zip *.txt blog.html

Dengan demikian file berekstensi gif, zip, dan txt, serta file blog.html tidak akan ditampilkan
pada directory listing.

15. Redirect
Ada kalanya Anda ingin mengalihkan sebuah URL di website Anda ke alamat lainnya.
Bisa jadi alasannya adalah karena alamat lama terdapat di suatu folder tertentu, kemudian
ingin memindahkannya. Padahal sudah banyak pengguna yang menghafalkan alamat tersebut.
Dengan menggunakan htaccess, masalah tersebut dapat diatasi.
Cara termudah untuk melakukan redirect adalah sebagai berikut.

Redirect /index.html /blog.html
Anda juga bisa melakukan redirect untuk keseluruhan folder.
Redirect /folderlama /folderbaru
Cara yang lebih ampuh lagi melakukan redirect adalah menggunakan perintah RedirectMatch.
RedirectMatch "\.html$" http://mimicreative.net/home
Pada perintah di atas, semua request terhadap alamat dengan akhiran “.html” akan
diarahkan ke alamat “home”.


16. Mengganti file default pada direktori
Setiap server memiliki aturan sendiri dalam menampilkan halaman default apabila kita
mengakses suatu direktori. Biasanya, yang akan diakses oleh server Apache bila kita mengakses
suatu direktori, pertama kali adalah file “index.html”, kemudian “index.php”. Berbeda lagi
untuk server lainnya.
Anda bisa mengubah file default dengan menggunakan htaccess. Caranya adalah
sebagai berikut.

DirectoryIndex home-page.html

Dengan demikian, apabila pengguna mengakses folder tanpa diikuti nama file, secara otomatis
akan diarahkan untuk mengakses file “home-page.html”. Anda juga bisa mengatur tidak hanya
satu file saja, tapi urutan file yang akan dicari seperti berikut.

DirectoryIndex home-page.html index.html index.php

Dengan cara di atas, server akan mencari file secara berurutan dari “home-page.html”,
yang bila tidak ketemu akan dilanjutkan dengan pencarian “index.html”, yang kemudian akan
mencari “index.php”. Bila terdapat 2 nama file seperti “index.html” dan “index.php”, maka
akan dipilih yang paling kiri (sebagai prioritas).

17. Mengatur www atau non-www
Secara default, web server mengarahkan request baik www maupun root domain ke folder yang
sama Jadi, Anda bisa mengakses alamat web Anda baik mimicreative.netataupun
www.mimicreative.net. Yang menjadi masalah adalah bila terdapat 2 konten yang sama dengan alamat
yang berbeda, akan muncul pula pada search engine. Selain itu, akan membuat alamat website Anda
kurang konsisten. Anda bisa mengatur apakah website Anda diharuskan memakai www ataupun tidak.
Sebagai contoh, website penulis, bila diakses menggunakan http://www.haqqi.net akan otomatis
mengarah ke root domain http://haqqi.net. Untuk melakukannya, dalam htaccess dituliskan kode
seperti berikut.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^haqqi.net$ [NC]
RewriteRule ^(.*)$ http://haqqi.net/$1 [L,R=301]

Sedangkan bila Anda menginginkan website Anda selalu menggunakan www apabila mengakses
root domain, maka kode htaccess-nya adalah sebagai berikut.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^haqqi.net [NC]
RewriteRule ^(.*)$ http://www.haqqi.net/$1 [L,R=301]

Langkah ini cukup penting, mengingat masih banyak orang awam yang mengakes root
domain dengan awalan sub-domain www. Sedangkan untuk pilihan apakah alamat yang Anda
gunakan adalah www ataupun non-www, semua ada di tangan Anda.

18. Kompresi file
Salah satu perintah yang cukup bermanfaat lainnya adalah kompresi file yang dikirim
dari server ke pengguna. Htaccess mampu melakukannya, dengan beberapa baris saja.
Kompresi yang digunakan adalah zlib, berikut contoh kode-nya.

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Kode di atas akan mengkompres file teks, html, javascript, css, dan xml. Anda bisa
menambahkan jenis file lainnya selama Anda mengerti jenis file atau mime-type file yang akan
Anda kompres.

download file pengertian dan pemanfaatan file htacces

0 komentar:

Post a Comment

 
Toggle Footer