2020 Panduan Lengkap Untuk .HTACCESS – Dari Dasar-Dasar Hingga Pembelajaran Lanjutan

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Dengan menggunakan file .htaccess, Anda dapat mengontrol banyak aspek server web Apache (dan banyak variannya). Di bawah ini, Anda akan mempelajari semua yang perlu Anda ketahui mengatur halaman kesalahan khusus, direktori perlindungan kata sandi, pengalihan, dan banyak lagi.

Contents

Cara Menggunakan Panduan Ini

Panduan ini dibuat untuk berfungsi sebagai sumber daya komprehensif untuk menggunakan .htaccess. Jika Anda benar-benar baru menggunakan .htaccess – Anda mungkin ingin memulai dengan bab pertama “.htaccess Basics” di bawah ini.

Jika Anda mencari contoh kode tertentu atau tutorial, lihat navigasi di sebelah kanan halaman ini untuk langsung menuju ke sub-bagian dalam halaman ini..

.Dasar-dasar htaccess

Mari berkenalan dengan beberapa .htaccess dasar sebelum menyelam ke perintah.

Apa itu .htaccess?

File .htaccess adalah file konfigurasi yang mengontrol bagaimana server web menanggapi berbagai permintaan. Ini didukung oleh beberapa webserver, termasuk server web Apache yang populer digunakan oleh sebagian besar penyedia web hosting komersial.

.File htaccess beroperasi pada level direktori, yang memungkinkan mereka untuk mengesampingkan pengaturan konfigurasi global dari perintah .htaccess lebih tinggi di pohon direktori.

Bagaimana .htaccess Digunakan?

Beberapa kegunaan umum untuk .htaccess termasuk mengarahkan ulang URL, mengaktifkan perlindungan kata sandi untuk situs web (atau halaman situs web); menampilkan halaman kesalahan khusus (seperti 404 halaman); dan meningkatkan SEO melalui kebijakan garis miring yang konsisten.

Dalam kasus terakhir, webmaster dapat memilih untuk memerlukan trailing slashe di akhir setiap URL di situs atau tidak.

Mengapa Disebut .htaccess?

.htaccess singkatan dari “akses hypertext.” Nama ini berasal dari penggunaan asli alat yang untuk mengontrol akses pengguna ke file tertentu berdasarkan per direktori.

Menggunakan subset dari arahan pengaturan http.conf Apache, .htaccess memungkinkan administrator sistem untuk membatasi akses ke direktori individual untuk pengguna dengan nama dan kata sandi yang ditentukan dalam file .htpasswd yang menyertai..

Sementara file .htaccess masih digunakan untuk ini, mereka juga digunakan untuk sejumlah hal lain yang akan kita bahas dalam panduan ini.

Di mana File .htaccess?

Secara teori, setiap folder (direktori) di server Anda dapat memilikinya. Namun, secara umum, ada satu di folder root web Anda – itu folder yang menampung semua konten situs web Anda, dan biasanya diberi label sesuatu seperti public_html atau www.

Jika Anda memiliki satu direktori yang berisi beberapa subdirektori situs web, biasanya akan ada file .htaccess di direktori root (public_html) dan juga satu di setiap subdirektori (/ sitename).

Mengapa Saya Tidak Dapat Menemukan File .htaccess Saya?

Pada sebagian besar sistem file, nama file yang dimulai dengan titik (.) Adalah file tersembunyi. Ini berarti mereka biasanya tidak terlihat secara default.

Tetapi mereka tidak sulit untuk sampai. Klien FTP atau Manajer File Anda harus memiliki pengaturan untuk “tampilkan file yang tersembunyi.” Ini akan berada di tempat yang berbeda di program yang berbeda, tetapi biasanya di “Preferensi”, “Pengaturan”, atau “Opsi Folder.” Terkadang Anda akan menemukannya di menu “Tampilan”.

Bagaimana Jika Saya Tidak Memiliki File .htaccess?

Pertama-tama, pastikan Anda telah mengaktifkan “tampilkan file tersembunyi” (atau yang setara), sehingga Anda dapat yakin bahwa Anda sebenarnya tidak memilikinya. Seringkali, file .htaccess dibuat secara otomatis, jadi Anda biasanya akan memilikinya. Tapi ini tidak selalu terjadi.

Jika Anda benar-benar tidak memilikinya, Anda dapat dengan mudah membuatnya:

  • Mulai file baru di editor teks biasa.
  • Simpan dalam format ASCII (bukan UTF-8 atau yang lainnya) sebagai .htaccess.
    • Pastikan itu bukan htaccess.txt atau semacamnya. File seharusnya hanya memiliki nama .htaccess tanpa ekstensi file tambahan.
  • Unggah ke direktori yang sesuai melalui FTP atau file manager berbasis browser Anda.

Penanganan Kesalahan

Menggunakan file .htaccess untuk menentukan dokumen kesalahan sangat sederhana, salah satu hal paling sederhana yang dapat Anda lakukan dengan fitur ini.

Apa Itu Kode Kesalahan?

Ketika permintaan dibuat ke server web, ia mencoba untuk menanggapi permintaan itu, biasanya dengan mengirimkan dokumen (dalam hal halaman HTML), atau dengan mengakses aplikasi dan mengembalikan output (dalam hal Sistem Manajemen Konten dan aplikasi web lainnya).

Jika ada yang salah dengan ini, kesalahan dihasilkan. Berbagai jenis kesalahan memiliki kode kesalahan yang berbeda. Anda mungkin akrab dengan kesalahan 404, yang dikembalikan jika dokumen tidak dapat ditemukan di server.

Ada banyak kode kesalahan lain yang dapat direspon oleh server.

Kesalahan Permintaan Klien

  • 400 permintaan Buruk
  • 401 – Diperlukan Otorisasi
  • 402 – Diperlukan Pembayaran (belum digunakan)
  • 403 – Terlarang
  • 404 tidak ditemukan
  • 405 – Metode Tidak Diizinkan
  • 406 – Tidak Dapat Diterima (encoding)
  • 407 – Diperlukan Otentikasi Proksi
  • 408 – Permintaan Habis
  • 409 – Permintaan Konflik
  • 410 – Hilang
  • 411 – Panjang Konten Diperlukan
  • 412 – Prasyarat Gagal
  • 413 – Permintaan Entitas Terlalu Panjang
  • 414 – Permintaan URI Terlalu Panjang
  • 415 – Jenis Media yang Tidak Didukung.

Kesalahan Server

  • 500 Internal Server Error
  • 501 – Tidak Diimplementasikan
  • 502 Bad Gateway
  • 503 Layanan tidak tersedia
  • 504 Gateway Time-out
  • 505 – Versi HTTP Tidak Didukung.

Penanganan Kesalahan Default

Jika Anda tidak menentukan jenis penanganan kesalahan apa pun, server hanya akan mengembalikan pesan ke browser, dan browser akan menampilkan pesan kesalahan umum kepada pengguna. Ini biasanya tidak ideal.

Menentukan Dokumen Kesalahan

Buat dokumen HTML untuk setiap kode kesalahan yang ingin Anda tangani. Anda dapat memberi nama ini apa pun yang Anda suka, tetapi akan berguna untuk memberi nama mereka sesuatu yang akan membantu Anda mengingat untuk apa mereka, seperti tidak ditemukan.html atau hanya 404.html.

Kemudian, dalam file .htaccess, tentukan dokumen mana yang akan digunakan dengan setiap jenis kesalahan.

ErrorDocument 400 /errors/bad-request.html
ErrorDocument 401 /errors/auth-reqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-err.html

Perhatikan bahwa setiap arahan ditempatkan pada jalurnya sendiri.

Dan itu dia. Sangat sederhana.

Alternatif ke .htaccess Untuk Menangani Kesalahan

Sebagian besar Sistem Manajemen Konten (CMS) seperti WordPress dan Drupal, dan sebagian besar aplikasi web, akan memiliki cara mereka sendiri untuk menangani sebagian besar kode kesalahan ini.

Perlindungan Kata Sandi Dengan .htaccess

Tujuan asli dari file .htaccess adalah untuk membatasi akses ke direktori tertentu berdasarkan per pengguna (karena itu namanya, akses hypertext). Jadi kita akan melihat itu dulu.

.htpasswd

Nama pengguna dan kata sandi untuk sistem .htaccess disimpan dalam nama file .htpasswd.

Ini disimpan masing-masing pada satu baris, dalam bentuk:

nama pengguna: kata sandi terenkripsi

sebagai contoh:

johnsmith: F418zSM0k6tGI

Sangat penting untuk menyadari bahwa kata sandi yang disimpan dalam file bukan kata sandi yang sebenarnya digunakan untuk masuk. Sebaliknya itu adalah hash kriptografi dari kata sandi.

Ini berarti bahwa kata sandi telah dijalankan melalui algoritma enkripsi, dan hasilnya disimpan. Ketika pengguna masuk, kata sandi teks biasa dimasukkan dan dijalankan melalui algoritma yang sama. Jika inputnya sama, kata sandi cocok dan pengguna diberikan akses.

Menyimpan kata sandi dengan cara ini membuat mereka lebih aman – jika seseorang mendapatkan akses ke file .htpasswd Anda, mereka hanya akan melihat kata sandi yang di-hash, bukan yang asli. Dan tidak ada cara untuk merekonstruksi dokumen asli dari hash – ini adalah enkripsi satu arah.

Beberapa algoritma hashing yang berbeda dapat digunakan:

  • Algoritma Aman – Gunakan salah satunya
    • bcrypt – Ini adalah yang paling aman, tetapi juga yang paling lambat untuk dihitung. Ini didukung oleh Apache dan Nginx.
    • md5 – Ini adalah algoritma hashing default yang digunakan oleh versi Apache saat ini. Itu tidak didukung oleh Nginx.
  • Algoritma Tidak Aman – Jangan gunakan ini
    • crypt () – Ini digunakan untuk fungsi hashing default, tetapi tidak terlalu aman.
    • SHA dan SHA Asin.

Membuat Nama Pengguna dan Kata Sandi di Command Line

Anda dapat membuat file .htpasswd, dan menambahkan pasangan nama pengguna-kata sandi, langsung dari baris perintah atau terminal SSH.

Perintah untuk menangani file .htpasswd hanyalah htpasswd.

Untuk membuat file .htpasswd baru, gunakan perintah dengan opsi -c (untuk buat), lalu ketikkan path ke direktori (bukan URL, path aktual di server). Anda juga dapat menyertakan pengguna yang ingin Anda tambahkan.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

Ini menciptakan file .htpasswd baru di direktori / etc /, dan menambahkan catatan untuk pengguna bernama johnsmith. Anda akan dimintai kata sandi, yang juga akan disimpan, menggunakan enkripsi md5.

Jika sudah ada file .htpasswd di lokasi yang ditentukan, yang baru tidak dibuat – pengguna baru ditambahkan ke file yang ada.

Jika Anda lebih suka menggunakan algoritma hashing bcrypt, gunakan opsi -b.

Kata Sandi Hashing Tanpa Baris Perintah

Jika Anda merasa tidak nyaman menggunakan baris perintah atau terminal SSH (atau jika Anda tidak memiliki akses untuk suatu alasan), Anda dapat membuat file .htpasswd dan mengisinya menggunakan editor teks biasa, dan mengunggahnya melalui FTP atau file manager.

Namun, Anda harus mengenkripsi kata sandi Anda entah bagaimana, karena perintah htpasswd menangani itu untuk Anda.

Ada banyak utilitas enkripsi .htpasswd yang tersedia online. Yang terbaik mungkin adalah generator htpasswd di Aspirine.org.

Ini memberi Anda beberapa opsi untuk algoritma hashing dan kekuatan kata sandi. Anda cukup menyalin dan menempelkan output dari sana ke file .htpasswd Anda.

Tempat Menyimpan File .htpasswd Anda

Anda tidak perlu memiliki file .htpasswd terpisah untuk setiap file .htaccess. Faktanya, Anda seharusnya tidak. Dalam keadaan paling normal, Anda harus memiliki satu untuk seluruh akun hosting web atau direktori server utama Anda.

File .htpasswd tidak boleh berada di direktori yang dapat diakses publik – bukan public_html atau www atau subdirektori apa pun. Seharusnya di atas itu, dalam folder yang hanya dapat diakses dari server itu sendiri.

Cara Menggunakan .htpasswd Dengan .htaccess

Setiap direktori dapat memiliki file .htaccess sendiri, dengan set pengguna sendiri yang diizinkan untuk mengaksesnya.

Jika Anda ingin ada orang (termasuk pengguna yang tidak masuk) untuk mengakses direktori dan file-nya, cukup lakukan apa pun – itu adalah default.

Untuk membatasi akses Anda perlu menambahkan yang berikut ke file .htaccess:

AuthUserFile /usr/local/etc/.htpasswd
AuthName "Nama Area Aman"
AuthType Basic

membutuhkan pengguna yang valid

Baris pertama menentukan path dan nama file ke daftar nama pengguna dan kata sandi Anda. Baris kedua menentukan nama untuk area aman. Ini bisa apa saja yang Anda suka. Baris ketiga menentukan otentikasi “Dasar”, yang biasanya Anda butuhkan.

Tag menentukan apa yang sedang dibatasi (dalam hal ini, kemampuan untuk MENDAPATKAN atau POST ke file apa pun dalam direktori). Dalam pasangan tag adalah daftar siapa yang diizinkan untuk mengakses file.

Dalam contoh di atas, setiap pengguna yang sah dapat mengakses file. Jika Anda ingin membatasi akses ke pengguna tertentu atau beberapa pengguna, Anda dapat memberi nama mereka.

AuthUserFile /usr/local/etc/.htpasswd
AuthName "Nama Area Aman"
AuthType Basic

membutuhkan pengguna johnsmith
membutuhkan pengguna janedoe

Anda juga dapat menempatkan pengguna ke dalam grup dan mengizinkan akses berdasarkan grup. Ini dilakukan dengan menambahkan file lain yang menentukan grup.

File grup, yang dapat dinamai (misalnya) .htgroup terlihat seperti ini:

admin: johnsmith janedoe
staf: jackdoe cindysmith

Kemudian Anda dapat menentukannya di file .htaccess Anda:

AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
AuthName "Area Admin"
AuthType Basic

memerlukan admin grup

Alternatif untuk .htpasswd

Menggunakan .htaccess dan .htpasswd untuk membatasi akses ke file tertentu di server Anda hanya benar-benar masuk akal jika Anda memiliki banyak file statis. Fitur ini dikembangkan ketika situs web biasanya kumpulan dokumen HTML dan sumber daya terkait.

Jika Anda menggunakan sistem manajemen konten (CMS) seperti WordPress atau Drupal, Anda dapat menggunakan fitur manajemen pengguna bawaan untuk membatasi atau memberikan akses ke konten.

Mengaktifkan Sisi Server Termasuk (SSI)

Sekarang mari kita pelajari apa itu Server Side Include dan bagaimana Anda dapat menggunakannya.

Termasuk Sisi Server?

SSI, atau Server Side Include, adalah bahasa scripting ringan yang digunakan terutama untuk menanamkan dokumen HTML ke dokumen HTML lainnya. Ini membuatnya mudah untuk menggunakan kembali elemen umum, seperti header, footer, sidebars, dan menu. Anda dapat menganggapnya sebagai prekursor sistem pengelolaan konten dan templating hari ini.


SSI juga memiliki arahan kondisional (jika, yang lain, dll.) Dan variabel, menjadikannya bahasa skrip yang lengkap, jika agak sulit digunakan. (Biasanya, proyek apa pun yang lebih rumit daripada beberapa menyertakan akan menyebabkan pengembang memilih bahasa yang lebih kuat seperti PHP atau Perl.)

Mengaktifkan SSI

Beberapa server web hosting akan mengaktifkan Server Side Include secara default. Jika tidak, Anda dapat mengaktifkannya dengan file .htaccess Anda, seperti:

AddType teks / html .shtml
AddHandler mem-parsing .shtml
Indeks Pilihan, Termasuk FollowSymLinks

Ini harus mengaktifkan SSI untuk semua file yang memiliki ekstensi .shtml.

SSI pada file .html

Jika Anda ingin mengaktifkan penguraian SSI pada file .html, Anda dapat menambahkan arahan untuk mencapai hal itu:

AddHandler parsed .html server

Manfaat melakukan ini adalah Anda dapat menggunakan SSI tanpa memberi tahu dunia bahwa Anda menggunakannya. Juga, jika Anda mengubah implementasi di masa mendatang, Anda dapat menjaga ekstensi file .html Anda.

Kelemahan dari ini adalah bahwa setiap file .html akan diuraikan dengan SSI. Jika Anda memiliki banyak file .html yang sebenarnya tidak memerlukan penguraian SSI, ini dapat memperkenalkan banyak overhead server yang tidak dibutuhkan, memperlambat waktu muat halaman Anda, dan menggunakan sumber daya CPU.

SSI pada Halaman Indeks Anda

Jika Anda tidak ingin mem-parsing semua file .html, tetapi Anda ingin menggunakan SSI pada halaman indeks (beranda) Anda, Anda harus menentukannya di file .htaccess Anda.

Itu karena ketika server web sedang mencari halaman indeks direktori, itu mencari index.html, kecuali Anda mengatakan sebaliknya.

Jika Anda tidak mem-parsing file .html, Anda perlu halaman indeks Anda dinamai index.shtml agar SSI berfungsi, dan server Anda tidak tahu untuk mencarinya secara default.

Untuk mengaktifkannya, cukup tambahkan:

DirectoryIndex index.shtml index.html

Ini memperingatkan server web bahwa file index.shtml adalah file indeks utama untuk direktori. Parameter kedua, index.html adalah cadangan, jika index.shtml tidak dapat ditemukan.

Daftar Hitam IP dan Daftar Putih IP

Anda dapat menggunakan .htaccess untuk memblokir pengguna dari alamat IP tertentu (daftar hitam). Ini berguna jika Anda telah mengidentifikasi pengguna individu dari alamat IP tertentu yang telah menyebabkan masalah.

Anda juga dapat melakukan sebaliknya, memblokir semua orang kecuali pengunjung dari alamat IP tertentu (daftar putih). Ini berguna jika Anda perlu membatasi akses hanya ke pengguna yang disetujui.

Daftar hitam oleh IP

Untuk memblokir alamat IP tertentu, cukup gunakan arahan berikut, dengan alamat IP yang sesuai:

pesanan mengizinkan, menolak
tolak dari 111.22.3.4
tolak dari 789.56.4.
izinkan dari semua

Baris pertama menyatakan bahwa arahan izin akan dievaluasi terlebih dahulu, sebelum arahan tolak. Ini berarti bahwa mengizinkan dari semua akan menjadi status default, dan hanya mereka yang cocok dengan arahan yang ditolak akan ditolak.

Jika ini dibalik untuk menyangkal, mengizinkan, maka hal terakhir yang dievaluasi adalah izin dari semua arahan, yang akan memungkinkan semua orang, mengesampingkan pernyataan penolakan.

Perhatikan baris ketiga, yang telah ditolak dari 789.56.4. – itu bukan alamat IP lengkap. Ini akan menolak semua alamat IP di dalam blok itu (apa pun yang dimulai dengan 789.56.4).

Anda dapat memasukkan sebanyak mungkin alamat IP, satu di setiap baris, dengan menolak dari arahan.

Daftar putih oleh IP

Kebalikan dari daftar hitam adalah daftar putih – membatasi semua orang kecuali yang Anda tentukan.

Seperti yang Anda tebak, arahan pesanan harus dibalik, sehingga semua orang pertama-tama ditolak, tetapi kemudian alamat tertentu diizinkan.

pesanan ditolak, izinkan
tolak dari semua
bolehkan dari 111.22.3.4
bolehkan dari 789.56.4.

Tindakan Memblokir

.htaccess dapat digunakan untuk memblokir pengguna berdasarkan domain atau pengarah. Dan Anda dapat menggunakannya untuk memblokir bot dan pencakar. Mari cari tahu caranya.

Cara Memblokir Pengguna Menurut Domain

Anda juga dapat memblokir atau mengizinkan pengguna berdasarkan nama domain. Ini dapat membantu memblokir orang bahkan saat mereka berpindah dari alamat IP ke alamat IP.

Namun, ini tidak akan berhasil terhadap orang yang dapat mengontrol pemetaan alamat IP DNS-terbalik.

pesanan mengizinkan, menolak
tolak dari example.com
izinkan dari semua

Ini juga berfungsi untuk subdomain – pada contoh sebelumnya, pengunjung dari xyz.example.com juga akan diblokir.

Cara Memblokir Pengguna dengan Referer

Perujuk adalah situs web yang berisi tautan ke situs Anda. Ketika seseorang mengikuti tautan ke halaman di situs Anda, situs asalnya adalah pengarah.

Ini tidak hanya berfungsi untuk hyperlink yang dapat diklik ke situs web Anda.

Halaman mana saja di internet dapat menghubungkan langsung ke gambar Anda (“hotlinking”) – menggunakan bandwidth Anda, dan mungkin melanggar hak cipta Anda, tanpa memberikan manfaat apa pun kepada Anda dalam hal lalu lintas. Mereka juga dapat melakukan hotlink ke file CSS, skrip JS, atau sumber daya lainnya.

Sebagian besar pemilik situs web setuju dengan ini ketika terjadi sedikit saja, tetapi kadang-kadang hal semacam ini dapat berubah menjadi penyalahgunaan.

Selain itu, kadang-kadang hyperlink yang dapat diklik dalam teks aktual bermasalah, seperti ketika mereka datang dari situs web yang bermusuhan.

Untuk salah satu alasan ini, Anda mungkin ingin memblokir permintaan yang berasal dari rujukan tertentu.

Untuk melakukan ini, Anda memerlukan modul mod_rewrite diaktifkan. Ini diaktifkan secara default untuk sebagian besar host web, tetapi jika tidak (atau Anda tidak yakin), Anda biasanya dapat menanyakannya pada perusahaan hosting Anda. (Jika mereka tidak bisa atau tidak akan mengaktifkannya, Anda mungkin ingin memikirkan host baru.)

Arahan .htaccess yang menyelesaikan pemblokiran berbasis referensi bergantung pada mesin mod_rewrite.

Kode untuk diblokir oleh pengarah terlihat seperti ini:

Tulis ulang pada
RewriteCond% ^ http: //.*example.com [NC, OR]
RewriteCond% ^ http: //.*anotherexample.com [NC, OR]
RewriteCond% ^ http: //.*onemoreexample.com [NC]
RewriteRule. * – [F]

Ini sedikit rumit, jadi mari kita berjalan melewatinya.

Baris pertama, RewriteEngine on, memberi peringatan kepada parser bahwa serangkaian arahan yang berkaitan dengan penulisan ulang akan datang.

Tiga baris berikutnya masing-masing memblokir satu domain pengarah. Bagian yang perlu Anda ubah untuk penggunaan Anda sendiri adalah nama domain (contoh) dan ekstensi (.com).

Garis miring ke belakang sebelum .com adalah karakter pelarian. Pencocokan pola yang digunakan dalam nama domain adalah ekspresi reguler, dan titik berarti sesuatu di RegEx, sehingga harus “melarikan diri” menggunakan back-slash.

NC di dalam kurung menentukan bahwa kecocokan tidak harus peka huruf besar-kecil. OR adalah “atau” literal, dan artinya ada aturan lain yang akan datang. (Yaitu – jika URL ini yang ini atau yang ini atau yang ini, ikuti aturan penulisan ulang ini.)

Baris terakhir adalah aturan penulisan ulang yang sebenarnya. [F] berarti “Dilarang.” Setiap permintaan dengan pengarah yang cocok dengan yang ada dalam daftar akan gagal, dan menghasilkan 403 kesalahan Terlarang.

Memblokir Bot dan Pencakar Web

Salah satu aspek yang lebih menyebalkan dari mengelola situs web adalah menemukan bahwa bandwidth Anda sedang dimakan oleh pengunjung non-manusia – bot, perayap, pencakar web.

Ini adalah program yang dirancang untuk menarik informasi dari situs Anda, biasanya untuk tujuan mempublikasikannya kembali sebagai bagian dari beberapa operasi SEO tingkat rendah.

Di sana, tentu saja, bot sah – seperti yang dari mesin pencari utama. Tetapi sisanya seperti hama yang hanya memakan sumber daya Anda dan tidak memberikan nilai apa pun kepada Anda.

Ada beberapa ratus bot yang diidentifikasi. Anda tidak akan pernah bisa memblokir semuanya, tetapi Anda bisa menjaga aktivitasnya tetap rendah dengan memblokir sebanyak yang Anda bisa..

Ada seperangkat aturan penulisan ulang yang berguna yang memblokir lebih dari 400 bot yang dikenal yang disusun oleh AskApache.

Menentukan File Default untuk Direktori

Ketika permintaan dibuat ke server web untuk URL yang tidak menentukan nama file, asumsi dibangun ke sebagian besar server web adalah bahwa URL merujuk ke direktori.

Jadi, jika Anda meminta http://example.com, Apache (dan sebagian besar server web lainnya) akan mencari di direktori root untuk domain (biasanya / public_html atau yang serupa, tapi mungkin / example-com) untuk default mengajukan.

File default, secara default, disebut index.html. Ini berjalan kembali ke awal internet ketika sebuah situs web hanya kumpulan dokumen, dan halaman “rumah” biasanya merupakan indeks dari dokumen-dokumen itu..

Tetapi Anda mungkin tidak ingin index.html menjadi halaman default. Misalnya, Anda mungkin memerlukan jenis file yang berbeda, seperti index.shtml, index.xml, atau index.php.

Atau Anda mungkin tidak menganggap beranda sebagai “indeks”, dan ingin menyebutnya sebagai sesuatu yang berbeda, seperti home.html atau main.html.

Mengatur Halaman Direktori Default

.htaccess memungkinkan Anda untuk mengatur halaman default untuk direktori dengan mudah:

DirectoryIndex [nama file di sini]

Jika Anda ingin default menjadi home.html semudah:

DirectoryIndex home.html

Mengatur Beberapa Halaman Default

Anda juga dapat menentukan lebih dari satu DirectoryIndex:

DirectoryIndex index.php index.shtml index.html

Cara kerjanya adalah server web mencari yang pertama terlebih dahulu. Jika tidak dapat menemukannya, ia mencari yang kedua, dan seterusnya.

Mengapa Anda ingin melakukan ini? Tentunya Anda tahu file mana yang ingin Anda gunakan sebagai halaman default Anda, benar?

Ingatlah bahwa .htaccess memengaruhi direktori sendiri, dan setiap subdirektori hingga ditimpa oleh file yang lebih lokal. Ini berarti bahwa file .htaccess di direktori root Anda dapat memberikan instruksi untuk banyak subdirektori, dan masing-masing mungkin memiliki nama halaman default sendiri.

Mampu menempatkan aturan-aturan itu dalam file .htaccess tunggal di root berarti Anda tidak perlu menduplikasi semua arahan lain dalam file di setiap tingkat direktori.

Pengalihan URL dan Penulisan Ulang URL

Salah satu penggunaan paling umum dari file .htaccess adalah pengalihan URL.

Pengalihan URL harus digunakan ketika URL untuk dokumen atau sumber daya telah berubah. Ini sangat membantu jika Anda telah mengatur ulang situs web Anda atau mengubah nama domain.

301 vs 302 Redirect

Dari sudut pandang browser, ada dua jenis pengalihan, 301 dan 302. (Angka-angka ini merujuk pada kode kesalahan yang dihasilkan oleh server web.)

301 berarti “Pindah Secara Permanen,” sementara 302 berarti “Pindah Sementara.” Dalam kebanyakan kasus, Anda ingin menggunakan 301. Ini menjaga setiap ekuitas SEO yang dimiliki URL asli, meneruskannya ke halaman baru.

Ini juga akan menyebabkan sebagian besar browser memperbarui bookmark mereka. Sebagian besar browser juga akan melakukan cache pemetaan lama-ke-baru, sehingga mereka hanya akan meminta URL baru ketika link atau pengguna mencoba mengakses yang asli. Jika URL telah berubah secara permanen, ini semua adalah hasil yang diinginkan.

Ada sangat sedikit alasan untuk menggunakan 302 pengalihan, karena biasanya ada sangat sedikit alasan untuk mengubah sementara URL. Mengubah URL tidak pernah diinginkan, tetapi kadang-kadang diperlukan. Mengubahnya sementara, dengan rencana untuk mengubahnya kembali nanti, adalah ide yang buruk dan hampir selalu dapat dihindari.

Semua contoh di bagian ini akan menggunakan pengalihan 301.

Redirect vs. Menulis ulang

Ada dua cara berbeda untuk “mengubah” URL dengan arahan .htaccess – perintah Redirect dan mesin mod_rewrite.

Perintah Pengalihan sebenarnya mengirim pesan pengalihan ke browser, memberi tahu URL apa yang harus dicari.

Biasanya, alat mod_rewrite “menerjemahkan” satu URL (yang disediakan dalam permintaan) menjadi sesuatu yang sistem file atau CMS akan mengerti, dan kemudian menangani permintaan seolah-olah URL yang diterjemahkan adalah URL yang diminta.

Ketika digunakan dengan cara ini, browser web tidak memperhatikan bahwa sesuatu telah terjadi – browser hanya menerima konten yang diminta.

Alat mod_rewrite juga dapat digunakan untuk menghasilkan pengalihan 301 yang bekerja dengan cara yang sama dengan perintah Pengalihan, tetapi dengan lebih banyak opsi untuk aturan – mod_rewrite dapat memiliki instruksi pencocokan pola yang kompleks dan penulisan ulang, yang Redirect tidak dapat memanfaatkan.

Redirect Halaman Dasar

Untuk mengalihkan satu halaman ke URL lain, kodenya adalah:

Redirect 301 /relative-url.html http://example.com/full-url.html

Perintah single-line ini memiliki empat bagian, masing-masing dipisahkan dengan satu spasi:

  • Perintah Redirect
  • Jenis pengalihan (301 – Dipindahkan Secara Permanen)
  • URL relatif dari halaman asli
  • URL lengkap dan lengkap dari halaman baru.

URL relatif relatif ke direktori yang berisi file .htaccess, yang biasanya merupakan root web, atau root dari domain.

Jadi, jika http://example.com/blog.php telah dipindahkan ke http://blog.example.com, kodenya adalah:

Redirect 301 /blog.php http://blog.example.com

Mengarahkan Bagian Besar Situs Web Anda

Jika Anda telah memindahkan struktur direktori Anda, tetapi membiarkan nama halaman Anda tetap sama, Anda mungkin ingin mengarahkan semua permintaan untuk direktori tertentu ke yang baru.

Redirect 301 / old-directory http://example.com/new-directory

Mengarahkan Seluruh Situs

Bagaimana jika seluruh situs Anda telah pindah ke URL baru? Mudah.

Redirect 301 / http://newurl.com

Mengarahkan www ke non-www

Semakin banyak situs web yang beralih dari subdomain www.

Ini tidak pernah benar-benar diperlukan, tetapi itu adalah peninggalan dari hari-hari ketika kebanyakan orang yang mengoperasikan situs web menggunakan server untuk menyimpan banyak dokumen mereka sendiri, dan direktori www atau “world wide web” digunakan untuk konten yang mereka inginkan. berbagi dengan orang lain.

Saat ini, beberapa orang menggunakannya, dan beberapa orang tidak. Sayangnya, beberapa pengguna masih secara otomatis mengetikkan www. di depan setiap URL karena kebiasaan. Jika Anda tidak menggunakan www, Anda ingin memastikan bahwa permintaan ini mendarat di tempat yang tepat.

Untuk melakukan ini, Anda harus menggunakan modul mod_rewrite, yang mungkin sudah terpasang di host web Anda.

Opsi + Tautan FollowSym
Tulis ulang pada
RewriteCond% ^ www.example.com [NC]
RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Hati-hati!

Banyak panduan .htaccess dan mod_rewrite lainnya menawarkan beberapa variasi kode berikut untuk mencapai hal ini:

Opsi + Tautan FollowSym
Tulis ulang pada
RewriteCond%! ^ Example.com [NC]
RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Apakah Anda melihat masalah dengan itu??

Ini mengalihkan semua subdomain ke domain primer. Jadi tidak hanya www.example.com, tetapi juga blog.example.com dan admin.example.com dan yang lainnya. Ini mungkin bukan perilaku yang Anda inginkan.

Mengarahkan kembali ke www

Tetapi bagaimana jika Anda menggunakan subdomain www?

Anda mungkin harus membuat arahan ulang untuk memastikan orang-orang sampai ke tempat yang mereka coba tuju. Apalagi sekarang semakin sedikit orang yang cenderung secara otomatis menambahkan www itu ke awal URL.

Anda cukup membalikkan kode di atas.

Tulis Ulang Hidup
RewriteCond% ^ example.com [NC]
RewriteRule ^ (. *) Http://www.website.com/$1 [R = 301, NC]

Haruskah Saya Mengarahkan 404 Kesalahan ke Beranda?

Beberapa panduan tentang pengalihan .htaccess menyertakan petunjuk tentang cara membuat 404 kesalahan redirect ke halaman beranda.

Ini adalah contoh yang baik tentang bagaimana hanya karena Anda dapat melakukan sesuatu, itu tidak berarti Anda harus melakukan sesuatu.

Mengarahkan 404 kesalahan ke beranda situs adalah ide yang buruk. Ini membingungkan pengunjung, yang tidak tahu mengapa mereka melihat halaman depan situs alih-alih halaman kesalahan 404 yang tepat.

Semua situs web harus memiliki halaman 404 khusus yang menjelaskan dengan jelas kepada pengguna bahwa konten tidak dapat ditemukan dan, idealnya, menawarkan beberapa fitur pencarian untuk membantu pengguna menemukan apa yang mereka cari.

Mengapa Menggunakan .htaccess Alih-alih Alternatif?

Anda dapat mengatur pengalihan dalam file PHP, atau dengan jenis skrip sisi server lainnya. Anda juga dapat mengaturnya dalam Sistem Manajemen Konten Anda (yang pada dasarnya hal yang sama).

Tetapi menggunakan .htaccess biasanya merupakan jenis pengalihan tercepat. Dengan pengalihan berbasis PHP, atau bahasa skrip sisi server lainnya, seluruh permintaan harus diselesaikan, dan skrip benar-benar ditafsirkan sebelum pesan pengalihan dikirim ke browser.

Dengan .htaccess redirect, server merespons secara langsung permintaan dengan pesan pengalihan. Ini jauh lebih cepat.

Namun, Anda harus perhatikan – beberapa sistem manajemen konten benar-benar mengelola pengalihan dengan memperbarui .htaccess secara programatik. WordPress, misalnya, memiliki pengalihan plugin yang berfungsi seperti ini. (Dan sistem URL WP yang cantik melakukan ini juga.)

Ini memberi Anda kinerja menggunakan .htaccess secara langsung, sementara juga memberi Anda kenyamanan manajemen dari dalam aplikasi Anda.

Menyembunyikan File .htaccess Anda: Pertimbangan Keamanan

Tidak ada alasan bahwa seseorang harus dapat melihat file .htaccess Anda dari web.

Selain itu, ada beberapa alasan besar Anda pasti tidak ingin orang melihat file .htaccess Anda.

Masalah terbesar adalah bahwa jika Anda menggunakan file .htpasswd, lokasinya dijabarkan dalam file .htaccess. Mengetahui di mana menemukannya membuatnya lebih mudah ditemukan.

Selain itu, sebagai aturan umum, Anda tidak ingin memberikan detail kepada publik tentang implementasi Anda.

Aturan penulisan ulang, pengaturan direktori, keamanan – semua hal yang Anda gunakan .htaccess – adalah praktik keamanan yang baik untuk menyembunyikan semua ini di belakang layar di server web Anda. Semakin banyak seorang hacker dapat mempelajari tentang sistem Anda, semakin mudah untuk kompromi.

Sangat mudah untuk menyembunyikan file .htaccess Anda dari tampilan publik. Cukup tambahkan kode berikut:

pesanan mengizinkan, menolak
tolak dari semua

Mengaktifkan tipe MIME

Jenis MIME adalah jenis file. Mereka memanggil tipe MIME karena hubungannya dengan email asli (MIME adalah singkatan dari “Multiguna Internet Mail Extensions”). Mereka tidak hanya disebut “tipe file” karena MIME menyiratkan format tertentu untuk menentukan jenis file.

Jika Anda pernah membuat dokumen HTML, Anda kemungkinan menentukan jenis MIME, bahkan jika Anda tidak mengetahuinya:

Atribut type mengacu pada tipe MIME tertentu.

Ketik MIME di Server Anda

Terkadang Anda akan menemukan bahwa server web Anda tidak dikonfigurasikan untuk mengirimkan jenis file tertentu. Itu hanya tidak berfungsi – permintaan untuk file gagal.

Dalam kebanyakan kasus, Anda dapat memperbaiki masalah ini dengan menambahkan tipe MIME ke file .htaccess Anda.

Teks AddType / richtext rtx

Arahan ini memiliki tiga bagian, masing-masing dipisahkan oleh spasi:

  • Komandan AddType
  • Jenis MIME
  • Ekstensi file.

Jika Anda ingin mengaitkan beberapa ekstensi file yang berbeda dengan jenis MIME yang sama, Anda dapat melakukannya pada satu baris.

AddType image / jpeg jpeg jpg jpe JPG

Paksa Unduh berdasarkan Jenis MIME

Jika Anda ingin semua tautan ke jenis file tertentu diluncurkan sebagai unduhan, alih-alih dibuka di peramban, Anda melakukannya dengan aplikasi tipe MIME / aliran oktet, seperti ini:

Aplikasi AddType / octet-stream pdf

Sekali lagi, Anda dapat menentukan beberapa ekstensi file dengan satu jenis:

Aplikasi AddType / octet-stream pdf doc docx rtf

Daftar Ekstensi File dan Jenis MIME

Berikut adalah daftar format file yang tidak lengkap dan tipe MIME terkait.

Jika Anda mengelola situs web Anda sendiri, dan Anda tahu jenis file tempat sumber daya Anda terbitkan, maka tidak perlu menempelkan seluruh daftar ini ke file .htaccess Anda.

Namun, jika Anda menjalankan situs yang banyak orang berkontribusi dan menerbitkan konten, Anda mungkin ingin mengizinkan sejumlah besar jenis file dengan cara ini untuk memastikan tidak ada yang memiliki pengalaman buruk.

Ini terutama terjadi jika Anda menjalankan situs di mana orang mungkin secara khusus berbagi banyak file, misalnya situs berbagi file, aplikasi manajemen proyek (di mana banyak file akan sering dilampirkan ke proyek), atau aplikasi web yang menangani surel.

Aplikasi AddType / macbinhex-40 hqx
Aplikasi AddType / netalive net
Aplikasi AddType / netalivelink nel
AddType application / octet-stream exe bin
Aplikasi AddType / oda oda
Aplikasi AddType / pdf pdf
AddType application / postscript ai eps ps
Aplikasi AddType / rtf rtf
Aplikasi AddType / x-bcpio bcpio
Aplikasi AddType / x-cpio cpio
Aplikasi AddType / x-csh csh
Aplikasi AddType / x-director dcr
Aplikasi addType / dir-direktur x
Aplikasi AddType / x-director dxr
Aplikasi AddType / x-dvi dvi
Aplikasi AddType / x-gtar gtar
Aplikasi AddType / x-hdf hdf
Aplikasi AddType / x-httpd-cgi cgi
Aplikasi AddType / x-lateks lateks
Aplikasi AddType / x-mif mif
Aplikasi AddType / x-netcdf nc cdf
AddType application / x-onlive sds
Aplikasi AddType / x-sh sh
Aplikasi AddType / x-shar shar
Aplikasi AddType / x-sv4cpio sv4cpio
Aplikasi AddType / x-sv4crc sv4crc
Aplikasi AddType / tar x-tar
Aplikasi AddType / x-tcl tcl
Aplikasi AddType / x-tex tex
Aplikasi AddType / x-texinfo texinfo texi
Aplikasi AddType / x-troff t tr roff
Aplikasi AddType / x-troff-man man
Aplikasi AddType / x-troff-me me
Aplikasi AddType / x-troff-ms ms
Aplikasi AddType / x-ustar ustar
AddType application / x-wais-source src
Aplikasi / zip zip AddType
AddType audio / basic au snd
AddType audio / x-aiff aif aiff aifc
AddType audio / x-midi mid
AddType audio / x-pn-realaudio ram
AddType audio / x-wav wav
AddType image / gif gif GIF
Gambar AddType / ief ief
AddType image / jpeg jpeg jpg jpe JPG
Gambar AddType / tiff tiff tif
AddType image / x-cmu-raster ras
AddType image / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-graymap pgm
AddType image / x-portable-pixmap ppm
AddType image / x-rgb rgb
AddType image / x-xbitmap xbm
AddType image / x-xpixmap xpm
AddType image / x-xwindowdump xwd
AddType teks / html html htm
AddType teks / teks biasa
Teks AddType / richtext rtx
AddType text / tab-separated-values ​​tsv
AddType text / x-server-parsed-html shtml sht
AddType text / x-setext etx
AddType video / mpeg mpeg mpg mpe
AddType video / quicktime qt mov
AddType video / x-msvideo avi
AddType video / x-sgi-movie movie
AddType x-world / x-vrml wrl

Blokir Hotlinking

Hotlinking adalah praktik menautkan ke sumber daya dari domain lain alih-alih mengunggah konten ke server Anda sendiri dan menyajikannya sendiri.

Katakanlah Anda menemukan gambar di situs web yang benar-benar Anda sukai, dan Anda ingin menggunakannya di situs Anda. Mengabaikan masalah hak cipta untuk saat ini – Anda dapat mengunduh gambar, mengunggahnya ke situs web Anda, dan menyematkannya di halaman Anda seperti biasa.


Tetapi jika Anda malas, atau mencoba menghemat bandwidth, atau tidak tahu cara mengunggah file, Anda bisa menyematkannya langsung dari file asli.

Itu hotlinking. Ini juga terjadi dengan file CSS dan JS, tetapi gambar adalah yang paling umum.

Beberapa situs web / host tidak keberatan sama sekali jika Anda melakukan ini – Anda dapat men-hotlink gambar dari Wikipedia tanpa ada yang kesal. Dan beberapa situs web mendorongnya dalam satu bentuk atau lainnya.

Misalnya, JQuery menyediakan perpustakaan JS mereka melalui CDN (Content Delivery Network), sehingga Anda dapat melakukan hotlink langsung ke sana tanpa harus mengunggah dan menyajikannya dari server Anda sendiri.

Tetapi banyak web host menganggap hotlinking sebagai bentuk bandwidth dan pencurian sumber daya.

Yang pasti, jika Anda menjalankan situs yang relatif kecil, Anda tidak dapat memiliki ribuan, atau puluhan ribu, permintaan yang dibuat setiap hari untuk sumber daya yang tidak ada hubungannya dengan pengunjung sebenarnya ke situs Anda.

Jika Anda memiliki masalah dengan hotlinking, Anda dapat menonaktifkannya dengan beberapa aturan mod_rewrite ditambahkan ke file .htaccess Anda.

Tulis ulang pada
RewriteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Gif | jpg | jpeg | png | js | css) $ – [F]

Pastikan untuk mengubah example.com di baris ketiga ke nama domain Anda yang sebenarnya. Ini akan menangkap setiap permintaan yang tidak datang dari domain Anda, dan kemudian memeriksa apakah itu cocok dengan salah satu ekstensi file yang ditentukan di baris keempat. Jika ada kecocokan, permintaan gagal.

Jika Anda ingin menambahkan ekstensi file lain, Anda cukup mengedit baris terakhir.

Menyajikan Konten Alternatif

Jika Anda ingin dunia tahu mengapa hotlinking mereka tiba-tiba berhenti berfungsi, Anda dapat mengganti gambar hotlink dengan gambar khusus dengan pesan seperti, “Kami benci hotlinking!” atau “Konten Asli Tersedia di http://example.com”.

Alih-alih gagal permintaan, Anda cukup mengarahkannya ke gambar “khusus”:

Tulis ulang pada
RewriteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Gif | jpg) $ http://www.example.com/no-hotlinking.jpg [R, L]

Jika Anda benar-benar ingin mengacaukan orang, Anda dapat mengarahkan ulang file JavaScript atau CSS ke alternatif khusus yang mungkin memiliki efek yang tidak menguntungkan untuk hotlinker. Namun ini tidak direkomendasikan.

Tulis ulang pada
RewriteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Js) $ http://www.example.com/break-everything.js [R, L]

Tulis ulang pada
RewriteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Css) $ http://www.example.com/super-ugly.css [R, L]

Nonaktifkan atau Aktifkan Indeks

Apa yang terjadi jika Anda memiliki direktori yang penuh dengan dokumen atau sumber daya lain, tidak ada file index.html, dan tidak ada halaman direktori default yang ditentukan dalam file .htaccess?

Dalam banyak kasus, hasilnya adalah daftar direktori umum dari semua file dalam direktori.

Betul. Jika Anda memiliki folder di direktori hosting Anda berlabel / gambar, dan tidak memiliki halaman index.html, ketika seseorang menavigasi ke http://yousite.com/images, mereka akan dapat melihat daftar semua gambar pada Anda situs.

Itulah perilaku default sebagian besar server web, dan masuk akal dari sudut pandang konsepsi asli sebuah situs web hanya sebagai tempat untuk menyimpan dan berbagi dokumen. Tapi ini bukan perilaku yang diinginkan untuk sebagian besar situs.

Menonaktifkan Indeks

Banyak akun hosting web yang telah menonaktifkan ini sebagai bagian dari konfigurasi global mereka. Tetapi tidak semua melakukannya.

Jika Anda perlu menonaktifkan daftar direktori yang dibuat secara otomatis, melakukannya mudah:

Pilihan -Indeks

Mengaktifkan Indeks

Jika server web Anda telah menonaktifkan indeks sebagai bagian dari konfigurasi global, tetapi Anda menginginkannya, Anda dapat mengaktifkannya dengan kebalikan dari perintah di atas.

Opsi + Indeks

Menyembunyikan beberapa file dari Indeks

Jika Anda ingin menampilkan daftar direktori, tetapi Anda ingin menyembunyikan tipe file tertentu dari daftar, Anda dapat melakukannya juga.

IndexIgnore * .gif * .jpg

* Adalah karakter liar. Arahan di atas akan menyembunyikan semua file yang memiliki ekstensi .gif atau .jpg. Jika Anda ingin lebih spesifik, Anda dapat:

IndexIgnore secret-image.jpg

Mengaktifkan CGI Everywhere

CGI, atau Common Gateway Interface, adalah metode sisi-server untuk memasukkan skrip non-HTML (seperti Perl atau SSI) di halaman web.

Biasanya, skrip CGI disimpan dalam folder berlabel / cgi-bin. Server web dikonfigurasikan untuk memperlakukan sumber daya apa pun dalam direktori itu sebagai skrip, bukan halaman.

Masalahnya adalah dua kali lipat: URL yang mereferensikan sumber daya CGI perlu memiliki / cgi-bin / di dalamnya, yang menempatkan detail implementasi ke dalam URL Anda – sebuah pola anti-harus dihindari karena sejumlah alasan.

Situs web yang kompleks mungkin memerlukan struktur organisasi yang lebih baik daripada hanya memiliki satu ton skrip yang dimasukkan ke folder tunggal / cgi-bin.

Jika Anda ingin server web Anda mem-parsing skrip CGI di mana pun mereka ditemukan dalam struktur direktori Anda, cukup tambahkan berikut ini ke file .htaccess Anda:

AddHandler cgi-script .cgi
Opsi + ExecCGI

Jika Anda memiliki ekstensi file lain yang ingin diproses sebagai skrip CGI, Anda dapat menambahkannya di baris pertama.

Skrip sebagai Kode Sumber

Sebagian besar waktu, Anda meletakkan skrip di direktori web Anda karena, Anda ingin skrip dijalankan sebagai skrip.

Tetapi terkadang itu bukan yang Anda inginkan. Terkadang Anda ingin menampilkan kode sumber kepada pengunjung publik, alih-alih menjalankan skrip.

Ini mungkin terjadi jika Anda menjalankan layanan berbagi file atau situs penyimpanan kode, dan Anda ingin orang melihat kode sumber dan dapat mengunduhnya, tetapi skrip sebenarnya merupakan bagian dari fungsi situs Anda.

Ini dapat dilakukan dalam file .htaccess Anda dengan menghapus script handler untuk jenis file tertentu dan menggantinya dengan handler untuk teks.

RemoveHandler cgi-script .pl .cgi .php .py
AddType teks / polos .pl .cgi .php .py

Atau, seperti disebutkan sebelumnya, Anda dapat memaksa file dengan extensin ini untuk diunduh secara otomatis, bukan ditampilkan.

RemoveHandler cgi-script .pl .cgi .php .py
Aplikasi AddType / octet-stream .pl .cgi .php .py

Berhati-hatilah dengan salah satu dari ini. Jika Anda hanya ingin beberapa file ditampilkan dengan cara ini, tetapi masih menggunakan skrip ini untuk seluruh situs web Anda, Anda akan memiliki waktu yang buruk jika Anda meletakkan arahan itu ke dalam file .htaccess root web Anda..

Praktik yang lebih baik adalah menempatkan semua skrip “hanya tampilkan” ke dalam satu direktori, dan kemudian menempatkan direktif ke dalam file .htaccess di folder tersebut..

Mengkonfigurasi Pengaturan PHP

Terkadang Anda perlu mengubah pengaturan PHP. Cara yang tepat untuk melakukan ini adalah dalam file bernama php.ini.

Sayangnya, tidak semua perusahaan hosting web memungkinkan pelanggan mereka untuk mengedit file php.ini. Ini terutama berlaku untuk penyedia hosting bersama, di mana satu instalasi PHP dapat menjalankan ratusan situs web.

Untungnya, ada solusinya – Anda dapat menyematkan aturan php.ini ke file .htaccess Anda.

Sintaksnya terlihat seperti:

php_value [nama pengaturan] [nilai]

Jadi, misalnya, jika Anda perlu meningkatkan ukuran unggah file maks (masalah umum), semudah:

php_value upload_max_filesize 10 jt

Tidak semua pengaturan PHP dapat ditentukan dalam file .htaccess. Misalnya Anda tidak dapat menonaktifkan_kelas dengan cara ini.

Untuk daftar lengkap semua pengaturan php.ini, lihat panduan arahan resmi php.ini.

Cara Mencegah Akses ke PHP Anda termasuk File

Ada beberapa cara untuk mencegah akses tidak sah ke PHP Anda termasuk file.

Pertama, Anda dapat meletakkannya di direktori dan mengatur file .htaccess Anda untuk menolak semua akses ke direktori itu (yaitu, Tolak dari semua jika Anda menggunakan Apache HTTP Server). Jika seseorang mencoba mengakses file, mereka akan menerima HTTP 403 Dilarang tanggapan.

Atau, Anda dapat menyimpan file-file ini di luar direktori dari mana file situs web Anda dilayani. Yaitu, jika server web Anda menyajikan file yang berada di / srv / home, Anda dapat memasukkan file sertakan Anda di bawah / srv / home / termasuk. Ini membuat file tidak dapat diakses melalui URL, meskipun Anda dapat mengakses dan menggunakannya sebagai berikut: sertakan ‘PATH_TO_YOUR_FILE’

Terakhir, Anda dapat menentukan konstanta URL untuk file yang ingin Anda akses:

define (‘WEBSITE_URL’, ‘http://example.com’);

Lalu, untuk file yang tidak ingin Anda akses, sertakan cek berikut:

if (! defined (‘WEBSITE_URL’)) {
tajuk ($ _ SERVER ["SERVER_PROTOCOL"] . "403 Dilarang");
keluar;
}

Cara Mencegah Akses ke File PHP ini

Cara untuk mencegah akses tidak sah ke file-file ini adalah dengan mengedit file .htaccess Anda untuk menolak akses ke file-file ini (yaitu, Tolak semua jika menggunakan Apache).

Cara Mengatur Zona Waktu Server Anda

Anda dapat mengatur zona waktu server Anda dengan menentukannya di file .htaccess Anda. Untuk melakukannya, Anda perlu menambahkan baris berikut:

php_value date.timezone ‘Wilayah / Zona’

Pastikan untuk mengganti Wilayah / Zona dengan zona waktu yang Anda inginkan.

Simpan file Anda. Anda dapat menguji perubahan Anda dengan membuat file uji PHP yang berisi yang berikut ini di direktori yang sama dengan file .htaccess:

<?php phpinfo (); ?>

Muat file di browser Anda, dan cari nama direktif – kolom Nilai Lokal-nya akan menampilkan pengaturan zona waktu baru Anda.

Kapan Tidak Menggunakan .htaccess

Mengedit file .htaccess Anda untuk pertama kali dapat memberi Anda perasaan mendadak yang sangat besar atas lingkungan hosting web Anda. Anda tiba-tiba merasa seperti sysadmin.

Sayangnya, kekuatan ini bisa sampai ke kepala Anda, dan Anda mungkin menemukan diri Anda menggunakan file .htaccess dengan cara yang tidak benar-benar yang terbaik.

Ketika Anda perlu melakukan sesuatu yang tampaknya seperti pekerjaan .htaccess, pada dasarnya ada dua situasi di mana Anda harus meletakkan arahan itu di tempat lain.

Lebih Jauh ke Hulu

Kapan pun memungkinkan, jenis arahan yang dapat Anda tempatkan dalam file .htaccess lebih baik ditempatkan di file httpd.conf, yang merupakan file pengaturan konfigurasi untuk seluruh server.

Demikian pula, pengaturan PHP lebih baik dimiliki dalam file php.ini, dan sebagian besar bahasa lain memiliki file pengaturan konfigurasi yang sama.

Menempatkan arahan lebih lanjut di bagian hulu, di httpd.conf, php.ini, atau file konfigurasi khusus bahasa lainnya memungkinkan pengaturan tersebut “dipanggang” ke mesin parsing server web. Dengan .htaccess, arahan harus diperiksa dan ditafsirkan dengan setiap permintaan tunggal.

Jika Anda memiliki situs dengan lalu lintas rendah dengan hanya sedikit arahan .htaccess, ini bukan masalah besar. Tetapi jika Anda memiliki banyak lalu lintas, dan banyak arahan, kelambatan kinerja dapat benar-benar bertambah.

Sayangnya, banyak penyedia hosting bersama tidak memungkinkan pelanggan untuk mengakses file httpd.conf atau php.ini, memaksa pengguna untuk mengandalkan file .htaccess yang lebih lambat.

Ini memberikan penalti ganda bila dibandingkan dengan konfigurasi VPS khusus karena hosting bersama juga umumnya berdaya rendah. Ini adalah salah satu alasan mengapa sebuah situs dengan lalu lintas yang terhormat mungkin harus menggunakan paket VPS dan bukan paket hosting bersama.

Lebih Jauh ke Hilir

Jika Anda menggunakan Sistem Manajemen Konten (CMS) yang baik seperti WordPress atau Drupal, beberapa hal yang mungkin Anda lakukan dalam file .htaccess – seperti redirect URL atau blokir alamat IP – dapat dilakukan dari dalam aplikasi.

Seringkali, ini bekerja bersama dengan file .htaccess, dengan aplikasi menambahkan arahan secara terprogram.

Ketika ini tersedia, biasanya yang terbaik untuk menyelesaikan tugas-tugas ini dari dalam aplikasi, daripada mengedit file .htaccess sendiri. Anda cenderung memperkenalkan bug dan arahan yang tidak kompatibel jika Anda menggunakan plugin open-source yang teruji dengan baik.

Penyelesaian masalah

Mengolah file .htaccess Anda bisa menjadi hal yang bagus – tetapi juga dapat menyebabkan server Anda mengambil dan mulai mengirimkan 500 pesan Galat Server Internal.

Berikut adalah beberapa ide untuk membantu Anda melalui itu.

Lakukan Satu Hal Sekaligus

Ini seharusnya tidak perlu dikatakan, tetapi – sayangnya – ini adalah pelajaran yang harus kita pelajari berulang kali.

Lakukan satu hal. Lalu ujilah. Kemudian lakukan hal lain. Uji itu.

Jika Anda melakukan beberapa hal sekaligus, dan kemudian sesuatu gagal, Anda tidak akan tahu arahan mana yang menyebabkan masalah.

Cadangkan File Anda Sebelum Setiap Tindakan

Seiring dengan hanya melakukan satu hal pada satu waktu, Anda harus menyimpan file di antara setiap hal yang Anda coba. Arsip Anda yang disimpan harus dapat dipulihkan. Ini bukan Microsoft Word tempat Anda hanya dapat Membatalkan – Anda memerlukan salinan file yang disimpan.

Anda harus selalu memiliki versi kerja terbaru yang tersedia jika Anda mengacaukan sesuatu. Selalu, selalu, selalu memiliki kemampuan untuk memulihkan ke versi yang berfungsi.

Ini paling mudah jika Anda semacam sistem manajemen sumber seperti git. Anda dapat melakukan setelah setiap perubahan, dan memutar kembali jika Anda mengalami masalah.

Periksa Log Kesalahan

Jika Anda mengalami masalah, dan Anda mengalami kesulitan untuk mencari tahu alasannya, periksa log kesalahan Apache Anda. Ini sering memberikan informasi berharga tentang ke mana harus mencari.

Gunakan Forum Pengembang untuk Mendapatkan Bantuan

Forum pengembang dan Q&Situs seperti StackOverflow adalah alat yang sangat berharga bahkan untuk pengembang dan sysadmin yang paling berpengalaman. Dan jangan lupa Google. Seringkali, perbedaan antara master web yang buruk dan yang hebat adalah tidak mengetahui jawabannya, mengetahui di mana menemukan jawabannya.

Masalah .htaccess umum

Terkadang Anda salah ketik. Kadang-kadang Anda memiliki masalah esoteris dan membingungkan yang disebabkan oleh pertemuan faktor-faktor yang tidak terduga.

Sebagian besar masalah, dan yang benar-benar membuat frustrasi, adalah yang ada di tengah – masalah sederhana, sehari-hari yang mudah untuk diperbaiki jika Anda baru tahu tentang mereka.

Ini beberapa di antaranya.

Nama File salah

Hanya ada satu cara untuk mengeja .htaccess – harus dimulai dengan titik, dan harus dalam semua huruf kecil.

Tampaknya bodoh, tetapi jika file .htaccess Anda tidak melakukan apa yang Anda harapkan, itu harus menjadi hal pertama yang Anda periksa.

.htaccess Dinonaktifkan atau Sebagian Dinonaktifkan

Beberapa penyedia hosting bersama menonaktifkan .htaccess sekaligus. Orang lain mengizinkannya, tetapi membatasi arahan tertentu agar tidak digunakan – mereka hanya diabaikan jika dimasukkan.

Demikian pula, bahkan pada paket VPS atau server khusus Anda sendiri, .htaccess mungkin dinonaktifkan.

Jika Anda memiliki akses ke file httpd.conf, atau pengaturan server lainnya, Anda dapat memeriksanya sendiri. Jika Anda menemukan arahan AllowOverride None, Anda menemukan pelakunya. Ganti dengan AllowOverride All.

Jika Anda tidak memiliki akses ke file httpd.conf Anda (karena Anda menggunakan hosting bersama, misalnya), Anda mungkin perlu menghubungi dukungan teknis perusahaan hosting Anda dan melihat apakah mereka dapat mengaktifkannya untuk Anda, atau menawarkan saran kepada Anda on ow untuk mencapai apa yang Anda coba lakukan dengan cara yang berbeda.

Arahan yang Bertentangan atau Diabaikan

Jika Anda memiliki beberapa direktori bersarang, setiap direktori mungkin memiliki file .htaccess masing-masing. Setiap file .htaccess dari root, melalui masing-masing direktori bersarang, berlaku – mereka dibaca secara berurutan, turun ke bawah pohon direktori.

Jika Anda menetapkan sesuatu di direktori root Anda, dan kemudian sesuatu di subdirektori menimpanya, arahan dalam file .htaccess yang paling dekat dengan file yang diminta akan diutamakan.

Juga lihat lembar cheat mod-rewrite kami!

.htaccess Pertanyaan yang Sering Diajukan

  • Apa itu file .htaccess di SEO?

    File .htaccess dapat digunakan untuk menjalankan tugas yang berhubungan dengan SEO seperti pengalihan. Arahan ulang dapat digunakan untuk menghindari 404 pesan kesalahan dan untuk membiarkan perayap mesin pencari tahu halaman mana yang harus mereka indeks. Anda juga dapat mengatur header HTTP untuk meningkatkan kecepatan memuat halaman, yang dapat meningkatkan peringkat mesin pencari Anda.

    Selain itu, Anda dapat menggunakan .htaccess untuk memberlakukan kebijakan garis miring yang konsisten. Ini, dikombinasikan dengan aturan www dan HTTPS, dapat membantu Anda menghindari duplikat konten, yang dapat dikenakan sanksi oleh Google.

  • Bagaimana cara membuat file .htaccess di WordPress?

    Untuk membuat file .htaccess di WordPress, gunakan kode ini:

    # MULAI WordPress

    Tulis Ulang Hidup
    RewriteBase /
    RewriteRule ^ index \ .php $ – [L]
    RewriteCond% {REQUEST_FILENAME}! -F
    RewriteCond% {REQUEST_FILENAME}! -D
    RewriteRule. /index.php [L]

    # END WordPress

    Perhatikan bahwa ketika Anda menginstal WordPress, file .htaccess secara otomatis dibuat. Namun, plugin yang rusak dapat merusak file .htaccess, sehingga perlu membuat kembali file tersebut.

  • Mengapa saya tidak bisa melihat file .htaccess saya?

    Jika Anda tidak dapat melihat file .htaccess Anda, itu karena file itu tidak ada atau disembunyikan. Untuk memaksa klien FTP Anda menampilkan file-file ini, Anda harus mengubah pengaturan klien Anda (mis., Di FileZilla, buka Server > Paksa menampilkan file tersembunyi). Jika Anda melakukan perubahan ini dan Anda masih belum melihat .htaccess, Anda harus membuatnya kembali.

  • Berapa banyak file .htaccess yang harus saya miliki?

    Sebagian besar situs web tidak memerlukan lebih dari satu file .htaccess. Itu karena file .htaccess memungkinkan Anda untuk membuat perubahan konfigurasi server berdasarkan per direktori. Namun, ketika hosting beberapa situs atau aplikasi kompleks, beberapa webmaster dapat menggunakan lebih dari satu file per situs untuk menjalankan fungsi-fungsi lanjutan.

  • Di mana .htaccess di cPanel?

    Untuk melihat file .htaccess, masuk ke akun cPanel Anda. Lalu pergi ke File > Manajer File. Ketika diminta untuk memilih direktori, pilih Root Web dan pastikan itu Tampilkan File Tersembunyi sudah diperiksa. Anda sekarang dapat melihat file .htaccess Anda di cPanel.

  • Apa gunanya file .htaccess di CodeIgniter?

    File .htaccess dapat digunakan bersama dengan CodeIgniter untuk membuat URL ramah mesin pencari. Secara default, URL CodeIgniter menyertakan file index.php. Dengan menggunakan .htaccess Anda dapat menghapus file index.php default itu sehingga tidak muncul di semua URL aplikasi Anda.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me