Ya, kali ini saya akan mengajarkan bagaimana kita dapat membuat link seperti itu pada PHP dengan memanfaatkan .htaccess. Kalau orang-orang menggunakan metode mod_rewrite atau ada yang menyebut istilahnya shortened url. Terserahlah apa namanya, yang penting sekarang adalah cara membuatnya.
.htaccess
.htaccess merupakan file konfigurasi untuk server Apache, nah disni kita akan mengkonfigurasi file tanpa ekstensi agar dianggap menjadi file php. .htaccess harus diletakkan di root direktori server anda. Oke pertama-tama anda buat dulu file .htaccess. Caranya terserah anda, kalau bingung buka notepad, kemudian klik Save as, Save as type nya diubah diubah ke All Files. Kemudian file namenya diisi dengan .htaccess.
Apa sih yang mau kita buat?
Oke, jika sudah saya akan memberitahu apa yang sebenarnya akan kita buat. Misal anda memiliki web dengan nama google.com nah anda memiliki file artikel.php yang isinya adalah artikel-artikel pada web anda. Jadi file anda pasti seperti ini, http://www.google.com/artikel.php?id=1
Nah misi kita sekarang adalah mengubah http://www.google.com/artikel.php?id=1 menjadi http://www.google.com/artikel/1, jika anda perhatikan susunannya maka artikel pada http://www.google.com/artikel/1 sebenarnya merupakan file bukan folder. Jadi itu sebuah file tanpa ekstensi php yang nanti dengan bantuan .htaccess kita buat agar server mengganggap itu file PHP.
Nah misi kita sekarang adalah mengubah http://www.google.com/artikel.php?id=1 menjadi http://www.google.com/artikel/1, jika anda perhatikan susunannya maka artikel pada http://www.google.com/artikel/1 sebenarnya merupakan file bukan folder. Jadi itu sebuah file tanpa ekstensi php yang nanti dengan bantuan .htaccess kita buat agar server mengganggap itu file PHP.
Kenapa kita ubah seperti itu? selain url nya jadi lebih pendek, katanya orang-orang link seperti itu juga lebih Search Engine Friendly. Oke sekarang langsung saja kita mulai buat. Siapkan folder baru, terserah namanya apa saja diserver anda sebagai contoh foldernya "latihan" saja, isilah dengan file .htaccess dan buka file .htaccess nya isilah dengan kode berikut ini:
"^artikel$"> ForceType application/x-httpd-php
Oke, maksud dari kode diatas adalah, FileMatch berarti kita melakukan pencarian pada file artikel dengan Regular Expression. Dan jika file artikel ketemu maka kita memaksa server agar menganggap itu file PHP dengan perintah
ForceType application/x-httpd-php
. Jika sudah, sekarang anda bisa membuat file artikel tok, tidak usah dikasih ekstensi, tidak usah dikasih titik, tidak usah dikasih embel-embel macam-macam. Oke sekarang pada file artikel tersebut isilah dengan kode berikut ini:
echo "htaccess sukses"
?>
Oke, anda tahu kan itu kode PHP untuk apa? jika anda tidak tahu maka anda salah baca artikel, lebih baik anda belajar dasar PHP lebih dulu sebelum lanjut ke artikel ini. Oke sekarang jika anda mencobanya diserver komputer anda, silahkan pada browser anda jalankan http://localhost/latihan/artikel/1 atau jika sudah anda upload, jalankan http://www.google.com/latihan/artikel/1. Jika muncul tulisan "htaccess sukses", berarti file .htaccess anda telah benar dan berhasil dijalankan.
Pada beberapa server penyedia layanan hosting file .htaccess tidak bisa dijalankan atau ditutup aksesnya, silahkan anda tanyakan pada perusahaan pembuat hosting anda bagaimana cara mengaktifkannya.
Mengambil URL pada browser
Jika pada url konvensional http://www.google.com/artikel.php?id=1 maka kita mendapatkan nilai variabel
id=1
. Nah nilai id ini kita proses didatabase sehingga kita mendapatkan isi artikel dengan id tersebut. Sekarang karena url kita sudah menjadi http://www.google.com/latihan/artikel/1, bagaimana caranya kita mendapatkan nilai 1 nya? Pertama-tama tentu saja kita mengambil alamat dibrowser. PHP memiliki fungsi untuk mengambil alamat dibrowser yaitu
$HTTP_SERVER_VARS['PATH_INFO']
, hanya saja saya menemukan beberapa kasus bahwa fungsi tersebut tidak bisa berjalan dibeberapa server. Entah masalahnya versi Apache nya atau versi PHP nya saya tidak tahu. Karena itu kita menggunakan fungsi yang lebih baik dan lebih rumit :) Oke buka file artikel anda hapus kode yang tadi dan isilah dengan kode:
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
?>
Jika anda tampilkan nilai
$url
maka nilanya adalah alamat url dibrowser anda, dalam hal ini nilainya adalah http://www.google.com/latihan/artikel/1. Sip kita sudah dapat link nya, sekarang bagaimana mendapatkan nilai 1 nya? tentu saja kita perlu memecahnya berdasarkan tanda "/" dengan fungsi explode
. Oke tambahkan kode berikut ini:
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$data = explode("/",$url);
?>
fungsi
explode
disini kita memecah string berdasarkan karakter "/" dan hasilnya kita simpan kedalam variabel $data
dalam bentuk array. Jadi pada contoh diatas jika link anda http://localhost/latihan/artikel/1 dan anda jalankan kode diatas, maka anda akan mendapatkan nilai: - $data[0] = http
- $data[1] = (kosong)
- $data[2] = localhost
- $data[3] = latihan
- $data[4] = artikel
- $data[5] = 1
$data[5]
. Karena anda sudah dapat nilai id nya, maka anda tinggal memprosesnya kedalam database seperti biasa anda lakukan. Mudah kan? tapi perlu diingat jika didalam server kita yang tadi alamatnya: http://www.google.com/artikel/1 maka nilainya juga akan berbeda: - $data[0] = http
- $data[1] = (kosong)
- $data[2] = www.google.com
- $data[3] = artikel
- $data[4] = 1
$data[4]
yang nilainya 1, karena itu jangan lupa untuk merubahnya. Jika didalam web anda meload gambar atau css atau script javascript. Gunakan fixed url untuk menampilkan gambar, css dan javascript karena alamat kita menjadi http://www.google.com/artikel/1 maka browser menganggap kita berada di folder artikel dan didalam folder 1. Maka jia anda mengambil image hanya dengan
. Ubahlah menjadi