Selasa, 20 November 2012

Mengenal Konfigurasi .htaccess



Ada bagian yang kelihatannya sepele tapi banyak kegunaannya untuk keberlangsungan website Anda. Yaitu sebuah file yang bernama .htaccess.
File .htaccess adalah sebuah file teks ASCII sederhana. Anda bisa membuat atau mengedit file ini di Text Editor (Notepad) dan kemudian mengunggahnya ke direktori yang ingin anda setting.
Perintah-perintah di dalam file .htaccess mempengaruhi direktori tempatnya berada dan semua subdirektorinya. Bila anda meletakkan file .htaccess di public_html, maka hal tersebut akan mempengaruhi semua website anda.

1. Mengarahkan  akses namadomain tanpa www ke www

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domainanda.com [nc]
rewriterule ^(.*)$ http://www.domainanda.com/$1 [r=301,nc]
PERHATIAN: Bila Anda sudah memiliki file .htaccess dengan konfigurasi yang lain maka Anda cukup masukkan baris ke-2 dan ke-3 di bawah bagian RewriteEngine on

2. Mencegah orang lain melihat htaccess dan file lainnya

order allow,deny
deny from all

Jika anda mau mencegah pengaksesan file lain, ganti nama file .htaccess dengan nama file yang lain.

3. Mengubah Pesan Error
Jika anda ingin mengubah halaman error server, anda bisa menggunakan .htaccess untuk mendefinisikan pesan error anda sendiri. Contoh syntax ini adalah:
ErrorDocument 500 /error.html
Isi error.html dengan halaman yang berisikan ERROR.

4. Blok IP tertentu atau pengunjung yang diarahkan dari web lain untuk mengakses web Anda
Jika anda ingin mem-blok access untuk beberapa individu dan anda mengetahui IP / domain name yang digunakan, tambahkan baris berikut :

order deny,allow
deny from 123.456.789.000
deny from 456.78.90.
deny from .koplak.com
allow from all
Pada contoh di atas, user dengan IP 123.456.789.000 akan diblok. Semua user antara 456.78.90.000 sampai 456.78.90.999 akan diblok. Dan semua user yang terhubung dari koplak.com akan diblok. Jika mereka mencoba mengakses situs Anda, maka akan tampil error 403 Forbidden (“You do not have permission to access this site”).


5. Mengarahkan pengunjung ke halaman baru atau direktori baru
Misalnya bila halaman lama Anda adalah halamanlama.html dan halaman baru adalah halamanbaru.html, maka perintahnya adalah:
Redirect permanent /halamanlama.html http://www.domainanda.com/halamanbaru.html
Jika anda mengubah nama direktori, maka perintahnya adalah:
Redirect permanent /direktorilama http://www.domainanda.com/domainbaru/
Perhatikan bahwa nama direktori yang lama ditulis dengan “relative path”, sementara yang baru ditulis dengan “URL absolut” (dengan tanda “/”;)

6. Mencegah “Hot Linking” dan “Bandwidth Leeching”
Untuk mencegah orang lain melink secara langsung ke direktori image atau file anda dari website mereka sehingga mencuri bandwidth Anda, maka gunakan:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainanda.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ – [F]
Perintah tersebut akan membuat direktori image hanya bisa diakses bila user sedang mengakses www.domainanda.com
Anda jugabisa membuat sebuah gambar bila direktori image Anda dilink. Contohnya image jangandicuri.gif yang bertuliskan: “Mencuri membuat Anda sakit … kunjungi http://domainanda.com untuk melihat gambar yang kami miliki”, maka gunakan perintah:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainanda.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ http://www.domainanda.com/jangandicuri.gif [R,L]

7. Melindungi WP-Comment-Post.php dari spam
Walaupun ada Akismet, tapi mungkin perlu juga Anda melindungi blog Anda dari serangan spambot yang mencoba mengirim komentar spam langsung melalui wp-comment-post.php tanpa mengakses blog kita.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
8. Melindungi WP-Config.php
Melindungi file wp-config.php yang berisi informasi nama database, username database, dan password database anda.

# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

9. 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>

10.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)" crawlerdeny 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.

11.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/ 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.

12.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.

13.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

0 komentar:

Bagikan

Twitter Delicious Facebook Digg Stumbleupon Favorites More