Membuat clean url dengan htaccess dan php

membuat clean url dengan htaccess dan php

Apakah anda sudah pernah mendengar istilah clean url dalam php? Dan apakah sudah mencoba sendiri membuatnya? Jika belum inilah saatnya anda mengetahui dan mencoba menerapkannya dalam php. Apa clean url, keuntunganya serta bagaimana membuatnya, simak tulisan saya berikut ini.

Pengertian Clean URL

Clean url adalah sebuah metode penamaan halaman web dengan cara lebih sederhana, struktural, logis dan terbaca oleh manusia. Dengan struktur penamaan halaman yang baik maka pembaca atau pengguna lebih mudah mengingat apa yang mereka buka. Clean url juga sering dikenal dengan user-friendly URLs atau SEO-friendly URLs yang artinya penamaan yang digunakan sangat mendukung untuk optimalisasi mesin pencari .

Not Clean Url vs Clean Url

Bagaimana kita membedakan mana yang not clean url dengan clean url lihat contoh url berikut :

Halaman web dikatakan Not Clean url jika dibuat seperti berikut :

bukan clean url
Jika kita lihat cara pemanggilan halaman diatas tentunya akan sangat menyulitkan, belum lagi kalo kombinasinya lebih banyak dari itu.

Alamat halaman web dikatakan clean url jika disusun seperti berikut :

contoh clean url dengan php

Beberapa keuntungan menggunakan model clean url yaitu :

  1. Nama file lebih baik dan mudah diingat
  2. Lebih mudah menghubungkan dengan file lainya (link antar halaman)
  3. Memudahkan mesin pencari/search engine melakukan index halaman
  4. Lebih baik dari sisi keamanan

Bagaimana membuat clean url dalam php?

Clean url dalam php bisa dilakukan dengan beberapa cara, diantaranya yaitu dengan murni coding php, ada juga yang dibantu dengan file .htaccess. Jika melakukanya dengan murni php biasanya hasilnya kurang maksimal (masih terlihat melibatkan file utama) contoh : www.zainalhakim.web.id/index.php/artikel/php/12. Berbeda dengan yang menggunakan .htaccess, hasilnya jika kita lihat akan lebih baik dan mudah difahami contoh : www.zainalhakim.web.id/artikel/php/12.

Apa file .htaccess? File htaccess adalah sebuah file konfigurasi sistem yang dijalankan pada web server apache. htaccess ini biasanya diletakkan pada folder utama yang memerlukan konfigurasi tersebut. htaccess tidak memiliki ekstensi/jenis jadi cuman diberi nama dengan ".htaccess" dan diisi dengan konfigurasi web server.

Langkah pertama membuat clean url dengan htaccess dan php adalah membuat file .htaccess dengan isi seperti berikut :

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

Contoh lengkap bisa anda download pada bagian akhir tulisan ini. Untuk mengeditnya anda bisa menggunakan notepad atau text editor lainya.

Anda harus mengubah konfigurasi htaccess sesuai dengan letak folder aplikasi php (terlihat pada baris 2 dan 6). Jika anda menjalankan pada sub folder localhost maka kita harus menuliskan nama sub foldernya seperti diatas, dan jika dijalankan pada root folder/folder utama maka baris ke 2 dan 6 diubah menjadi :

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

Maksud htaccess diatas adalah memusatkan semua permintaan url ke file index.php, sehingga apapun yang diminta maka yang menghandle lebih dulu adalah index.php. Kecuali yang alamat yang diminta memang secara fisik ada folder atau filenya baru index diabaikan. Jika file htaccess sudah siap, sekarang kita membuat coding file phpnya seperti berikut :

<?php
$nama_folder = "https://localhost/clean-url";
$url = explode("/",$_SERVER["REQUEST_URI"]);
$segmen1   = $url[0];
$segmen2   = $url[1];
$segmen3   = $url[2];
$segmen4   = $url[3];
$segmen5   = $url[4];
$segmen6   = $url[5];
?>
<!DOCTYPE html>
<head>
<title>Contoh clean url</title>
<!-- ICON -->
<link rel="icon" href="<?php echo $nama_folder;?>favicon.png" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo $nama_folder;?>favicon.png" type="image/x-icon" />
<!-- CSS -->
<link href="<?php echo $nama_folder;?>css/style.css" rel="stylesheet" type="text/css" />
<!-- Javascript -->
<script src="<?php echo $nama_folder;?>js/java-tools.js"></script>
</head>
<body>
<h1>Contoh Clean Url dengan PHP</h1>
<p>Contoh Link</p>
<p>
<a href="<?php echo $nama_folder?>/artikel/">Artikel</a> |
<a href="<?php echo $nama_folder?>/berita/">Berita</a> |
<a href="<?php echo $nama_folder?>/galleri/">Galleri</a> |
<a href="<?php echo $nama_folder?>/kontak/">Kontak</a></p>
<?php
switch ($segmen3) { 
case "artikel" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu artikel</h2>";
	break; 
case "berita" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu berita</h2>";
	break; 
case "galleri" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu galleri</h2>";
	break; 
case "kontak" : 
	//anda bisa ganti bagian ini dengan perintah lain
	echo "<h2>Anda memilih menu kontak</h2>";
	break; 
}
?>
<p>writed by <a href="www.zainalhakim.web.id">www.zainalhakim.web.id</a></p>
</body>
</html>

Pada blok awal php, kita definisikan dulu alamat web secara lengkap contoh untuk web yang berada pada https://localhost/clean-url. Jika anda mencobanya di internet, bisa menuliskan alamatnya seperti https://www.zainalhakim.web.id/nama-folder.

Langkah kedua (baris ke 2) kita memisah permintaan url yang dikirimkan melalui browser, misal yang diminta : https://localhots/clean-url/artikel/ maka $_SERVER["REQUEST_URI"] akan bernilai /clean-url/artikel/. Dan pada saat dijalankan baris berikutnya :
$url = explode("/",$_SERVER["REQUEST_URI"]); maka $url akan diberi nilai dalam bentuk array yang kemudian dipecah dalam beberapa variabel diberi nama $segmen1 s/d $segmen6. Variabel segemen ini ditentukan sesuai kedalaman alamat yang kita buat. Nilai masing2 segmen jika sampai 6 maka berisikan :

$segmen1 = 
$segmen2 = clean-url
$segmen3 = artikel
$segmen4 =
$segmen5 =

Sehingga pada blok php berikutnya kita lakukan filter dengan switch pada $segmen3 sebagai kata kunci permintaan. Jika isi segmen3 artikel maka { lakukan proses } dst.

Jangan lupa untuk pemanggilan file-file eksternal harus dengan cara :

<!-- ICON -->
<link rel="icon" href="<?php echo $nama_folder;?>favicon.png" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo $nama_folder;?>favicon.png" type="image/x-icon" />
<!-- CSS -->
<link href="<?php echo $nama_folder;?>css/style.css" rel="stylesheet" type="text/css" />
<!-- Javascript -->
<script src="<?php echo $nama_folder;?>js/java-tools.js"></script>

Cara diatas berarti semua file eksternal dibuat fix alamatnya walaupun urlnya berubah2 sesuai konten halaman dinamisnya.

* Catatan : posisi segmen akan berubah tergantung alamat/url yang diminta

Silahkan download contoh lengkapnya disini.

Semoga bermanfaat dan bisa memberi inspirasi serta pengetahuan tambahan buat kita semua.

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Artikel Lainnya

  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 3
    Proses tahap awal dari membuat database, tabel, membuat formulir input data mahasiswa, proses simpan dan upload photo mahasiswa sudah dilakukan pada artikel Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 dan Bagian 2, sekarang membuat laporan hasil input data mahasiswa. Laporan ini akan dibuat menghubungkan kebeberapa bagian yaitu pencarian data mahasiswa, delete/menghapus data mahasiswa dan mengupdate data mahasiswa. Silahkan menyimak tahapan lanjutan berikut ini.
  • Membuat tabel warna-warni dengan php
    Tentunya anda pernah melihat sebuah laporan yang disajikan secara unik dan menarik php. Misal, tabel tersebut dibuat dengan warna selang seling/warna-warni. Tujuan dibuat warna-warni seperti itu bukan hanya agar tampilan lebih menarik tapi juga bertujuan agar baris-baris data bisa terlihat dengan jelas. Bagaimana membuatnya dalam php? Simak tulisan saya berikut ini.
  • Cara menampilkan gambar dari database mysql dengan php
    Artikel ini akan membahas tentang bagaimana menampilkan gambar yang sudah diupload kedalam database mysql. Bahasa yang digunakan adalah PHP. Cara pembuatanya sangat sederhana sama dengan membuat laporan php biasa
  • Mengurutkan data mysql dalam laporan php
    Data biasanya diinput dengan cara tak beraturan, bisa saja nama yang awalan Z lebih dulu dimasukkan, atau nomor urut yang lebih besar lebih duluan tergantung data mana yang lebih awal disiapkan. Dan jika dibuatkan laporannya dengan cara biasa saja, tentunya akan muncul sesuai dengan urutan memasukkan datanya ke dalam database. Bagaimana cara mengurutkan data tersebut dalam laporan php?
  • Perbedaan php dengan javascript dan html
    Apa perbedaan php dengan javascript? atau apa perbedaan php dengan html? pertanyaan ini seringkali muncul jika anda mulai mengenal bahasa pemrograman web. Ketiga bahasa pemrograman ini ternyata saling terkait dalam membangun sebuah web yang dinamis dan interaktif.

Kiriman terbaru