Selamat datang di Blog Coding Center, Blog yang apa adanya dan to the point.
(iya gak sih?)
Pernahkah kamu membuat web dimana web tersebut menangani file-file, dan menginginkan file tersebut hanya bisa dibuka/diakses oleh user yang mempunyai kewenangan.
Sebagai contoh kita mempunyai aplikasi yang disitu ada user member, nah kita menginginkan hanya member yang sudah tervalidasi yang login yang bisa mengkases file pdf yang kita punya.
misal kita menyimpan file kita di directory seperti ini:
coding.com/files/materi/nama_file_1.pdf, tentu file ini bisa diakses langsung oleh semua user walaupun belum login, jika user tersebut mengetahui lokasi file tersebut.
Sampai sini paham ya? tujuan dari artikel ini. kalau paham yuk lanjut ke solusinya..
kira-kira pakai apa ya?
yap, betul, kita memanfaatkan htaccess.
Begini caranya :
1. Buat file .htaccess di folder root web kita, atau jika sudah ada tambahkan baris berikut:
RedirectMatch 403 ^/files/materi/.*$
seperti gambar dibawah ini:
Cara mencegah akses langsung ke file pdf dengan htaccess |
2. untuk membaca file pdfnya kita buat script seperti dibawah ini. contoh dibawah ini saya menggunakan framework codeigniter, ini bisa diterapkan di php native atau framework lainnya.
Controller:
public function baca_file($id = false) {
//disini bisa diletakkan validasi jika belum login maka tidak bisa membaca file.
$data['materi'] = $this->Materi_m->ambil_materi_by_id($id); //mengambil data materi berdasar id
$data['file'] = base_url().'files/member/'.$data['materi']->file_pdf;
$data['filename'] =$data['materi']->file_pdf;
$this->load->view('read_pdf',$data); //ini untuk menampilkan view, yang akan membaca file pdf
}
View:
<?php
// Header content type
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
// Read the file
@readfile($file);
?>
Nah demikian artikel tentang cara mencegah akses langsung ke file pdf pada website dengan htaccess, semoga bermanfaat, mungkin cara tersebut diatas hanya salah 1 cara saja, mungkin dari pembaca ada yang punya cara lain silakan dishare disini.
Mohon maaf jika ada kesalahan, Jika ada pertanyaan silakan ditanyakan lewat komentar atau Kontak penulis di instagram @tricivic