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 = "http://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 http://localhost/clean-url. Jika anda mencobanya di internet, bisa menuliskan alamatnya seperti http://www.zainalhakim.web.id/nama-folder.

Langkah kedua (baris ke 2) kita memisah permintaan url yang dikirimkan melalui browser, misal yang diminta : http://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 **

Komentar

Halaman Lainya

  • Menghindari duplikat data dalam mysql dengan php
    Menghindari duplikat data dalam mysql bisa dilakukan dengan dua cara, pertama dengan mendefinisikan salah satu field/kolom sebagai primary key atau index, dan cara kedua adalah dengan membuat rutin perintah pengecekan data pada saat akan melakukan insert data. Berikut ini saya akan berbagi tentang bagaimana membuat rutin perintah php yang digunakan untuk menghindari duplikat data dalam mysql.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 5
    Melanjutkan artikel saya tentang membuat aplikasi data mahasiswa dengan php, sekarang sedikit saya kembangkan untuk melindungi ruang pengelolaan data mahasiswa dengan sistem login pengguna/user. Ini diperlukan hampir pada tiap aplikasi yang dibangun agar tidak semua orang yang mengakses halaman pengelola bisa langsung melihat atau melakukan perubahan data tanpa proses login terlebih dahulu.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 6
    Ini bagian terakhir artikel saya tentang tentang membuat aplikasi data mahasiswa dengan php, Pada artikel sebelumnya membuat aplikasi data mahasiswa bagian 5, saya sudah merancang tabel database pengguna dan menyisipkan 1 nama pengguna dengan password yang disimpan dalam format md5. Sekarang saya akan merancang form login dan proses login, serta melindungi semua halaman pengelolaan data mahasiswa yang sudah dibuat.
  • Cara membuat proses menyimpan data kedalam database mysql dengan php
    Untuk membuat proses penyimpanan data kedalam mysql dengan php kita harus membuat koneksi database, mengecek isi form, dan menjalankan perintah mysql untuk menyimpan data.
  • Membagi halaman laporan dalam php
    Jumlah data dari mysql yang tampil dalam laporan yang dibuat dengan php tentunya akan sangat mempengaruhi kinerja aplikasi web yang kita buat. Semakin banyak data, pasti prosesnya akan semakin lama dan tentunya agak sedikit menyulitkan orang yang membacanya.

Kiriman terbaru