ASANOER.COM – PRETTY URL LANJUTAN

Lama sekali, tiga bulan tepatnya, saya tidak menulis diblog. Ya, males, males banget menulis. Mending praktek langsung ketimbang menulis. Itu yang mungkin ada di benak saya sekarang.

Latar Belakang
Nah dari pada kosong-kosong tidak ada tulisan yang berarti, maka saya memberanikan diri untuk menulis artikel mengenai pretty url atau juga dikenal clean url yaitu url yang ramah lingkungan terhadap kelupaan user (seri lanjutan dari tulisan sebelumnya). Mengapa demikian, karena url yang ramah ini hanya mengandung kata-kata atau angka yang mudah diingat oleh kita. Dan juga url ramah banyak disukai oleh mesin pencari (search engine).

Dan alasan lainnya adalah saya mencoba meniru cara ampuh membuat url seperti google :

Contoh:

https://www.google.co.id/webhp?ie=utf-8&oe=utf-8  ,,,,, dst.

lihat URL google di atas, terlihat tulisan …/webhp?ie=…. nah inilah yang membuat saya penasaran.
Kok google bisa ya….

Langkah-langkah
1. Silahkan buka terlebih dahulu halaman ini sebagai standar di asanoer.com.
2. Kemudian buka terlebih dahulu demo di bawah ini (supaya Anda tahu tujuan artikel ini).

3. Direkomendasikan server php sudah bergentayangan di komputer Anda (jika belum silahkan download server apache).
4. Download source code ini. (saat di jalankan, akan ada halaman yang kosong karena memang saya sengaja supaya Anda tahu dimana posisi instalasinya).

asanoer.com-pretty-url-2-lanjutan

asanoer.com-pretty-url-2-lanjutan

5. Pahami langkat berikut.

Konfigurasikan file .htaccess

Setelah Anda mendownload paketan dari asanoer.com, maka ektrak terlebih dahulu, ,… terus lihat file .htaccess. File ini adalah file konfigurasi umum untuk server apache. Biasanya hanya tediri nama ektensi yaitu .htaccess (DOT htaccess).

RewriteEngine On
RewriteBase /pretty-url-2/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L]

Masukkan semua code di atas ke file .htaccess dalam paketan download. Jika folder utama mau diganti maka gantilah /prettu-url-2/ menjadi folder yang Anda inginkan misalnya menjadi /clean-url-ku/ dan akses kembali … misalnya localhost/clean-url-ku/ dan enter. Upss, kalau ada error maka buka file index.php dan cari $folder_utama, gantilah menjadi clean-url-ku terlebih dahulu, coba akses lagi dan enter. Maka seharusnya file pertama akan ditampilkan yaitu halaman-01.html.

Bagaimana bisa bekerja?

Secara teori, saya terus terang masih sangat sulit menjabarkannya. Akan tetapi dari konfigurasi file htaccess di atas maka index.php akan dihilangkan dari URL:

demo.asanoer.com/pretty-url-2/index.php/halaman-01.html

akan menjadi :

demo.asanoer.com/pretty-url-2/halaman-01.html

Nah dari konfigurasi tersebut masih perlu untuk membaca teks dari URL ==> “halaman-01.html” karena ini bukan nama file mutlak. Maka berikut code untuk mengambil string tersebut dan dimasukkan ke dalam var $page.

////////////////////////// 1. Pengambil URL Penuh
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$uri = 'https://';
} else {
$uri = 'http://';
}
$xHTTP = $uri;
$uri .= $_SERVER['HTTP_HOST'];
$foldernya = $_SERVER["REQUEST_URI"];
$uri .= $foldernya;
/////////////////////////2. pemecah URL berdasarkan garis miring menjadi array
$url_utuh = $uri;
$url = explode("/",$url_utuh);
///////////////////////// 3. Pencari index folder utama
$x = 0;
$max = 10;
$url_utama = '';
while($x <= $max) { IF ($x >= 2) {$url_utama = $url_utama.$url[$x].'/'; } // pembuat URL Root
IF ($url[$x] == $folder_utama)
{
$ut = $x;
$x = $max;
}
$x++;
}
$url_utama = $xHTTP.$url_utama; // pembuat URL Root
unset($x);unset($max);unset($url_utuh);
$ut++;
(ISSET($url[$ut])) ? $a= $url[$ut]: $a = "";// page
$ut++;
(ISSET($url[$ut])) ? $b= $url[$ut]: $b = "";// lainnya
$ut++;
(ISSET($url[$ut])) ? $c= $url[$ut]: $c = "";// lainnya
$ut++;
(ISSET($url[$ut])) ? $d= $url[$ut]: $d = "";// bisa ditambahkan sesuka Anda.
$ut++;
(ISSET($url[$ut])) ? $e= $url[$ut]: $e = "";//
$ut++;
(ISSET($url[$ut])) ? $f= $url[$ut]: $f = "";//
//////////////////////// 4. Page yang dihasilkan
if ($a != "") {$page = $a;}

 

Penjelasan :
1. Pengambil URL Penuh
Semua URL request dari browser harus diambil sepenuhnya.

2. pemecah URL berdasarkan garis miring menjadi array
URL akan dipecah menjadi beberapa bagian sesuai garis miring yang memisahkannya. Dalam hal ini adalah dibuat array. Array 0 = “http:”, Array 1 = “”, Array 2 = “demo.asanoer.com” dan seterusnya.

3. Pencari index folder utama
Dari array di atas akan dicari folder utama yaitu folder yang menjadi root aplikasi ini. Di sini adalah “pretty-url-2”. Hal ini berguna untuk membuat path URL langsung misalnya akan mengambil file css, jpg, ataupun lainnya.

4. Page yang dihasilkan
Dari situlah akan menghasilkan $page.

Menarik bukan? Mari lanjutkan berikutnya.

URL Palsu

Kenapa palsu, karena semua tulisan yang Anda ketik dalam Address bar ternyata diganti (reweite) dari konfigurasi htaccess.

http://demo.asanoer.com/pretty-url-2/halaman-01.html

kenyataannya halaman-01.html adalah sebuah string / teks yang akan menunjukkan pada file asanoer.com-halaman-01.php dari sebuah include. Seharusnya URL ke file ini adalah :

http://demo.asanoer.com/pretty-url-2/asanoer.com-halaman-01.php

Code akan dijelaskan di bawah ini.

Mendapatkan Variabel Get dari URL

Nah sekarang bagiaman jika pretty URL ini akan ditambahkan sebuah variabel get seperti dalam URL google di atas :  …/webhp?ie=…. seperti contoh ini :

http://demo.asanoer.com/pretty-url-2/halaman-01.html?data=023554&file=data-01.pdf

Dari awal pemotongan URL pada index.php, maka akan didapat variabel $page yang isinya : halaman-01.html, berikut detailnya

URI = http://
HOST NAME = demo.asanoer.com
Path Utama = pretty-url-2
Page = halaman-01.html

$page ini akan dicek dulu, apa ada tanda “?” di URL, jika ada, maka ambil page saja. Jika tidak ada maka lanjutkan ke pemilihan intruksi. Hal ini dilakukan guna untuk menghindari pelewatan intruksi di Switch untuk memilih page. DIperlihatkan dalam code berikut.

///////////////////// 1. Pisahkan variable GET dan Page
if (strpos($page, '?') !== false) {
$url_arr = explode("?",$page); // Jika halaman mengandung variable, maka potong variabel menurut tanda "?"
$page = $url_arr[0]; // URL halaman adalah sebelum tanda "?"
}
///////////////////// 2. Pilih page yang direquest
switch ($page) {
// Menampilkan page default
case "":
header("location:".$url_utama."halaman-01.html"); } // jika string kosong maka masukkan ke halaman-01.html
exit;
break;
// Menampilkan halaman-01.html
case "halaman-01.html":
include('page/asanoer.com-halaman-01.php');
exit;
break;
//Menampilkan halaman-02.html
case "halaman-02.html":
include('page/asanoer.com-halaman-02.php');
exit;
exit;
break;
default:
include('no-page.php'); // saat permintaan tidak digubris
exit;
break;
}

 

1. Pisahkan variable GET dan Page
Seperti yang sudah dijelaskan, yaitu baris ini hanya akan memisahkan variable get dan page.

2. Pilih page yang direquest
Cari halaman yang direquest oleh user menggunakan Switch.

Dan dalam file page included maka dapat diletakkan printah Extract($_GET); yaitu printah yang akan mengektraks variable GET setelah tanda ? dalam URL.

Selamat mencoba.

Sumber-sumber
  • Ilmu : dari Allah Subkhanahu wa Ta’ala.
  • Gambar : cuplikan dari demo.asanoer.com/pretty-url-2/
  • Alasan penulisan : pamer plus penasaran dengan URL Google.
  • Download : Ada dalam artikel di atas.

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.