Langsung ke isi website
Langsung ke navigasi

Artikel PHP/MySQL

  • Home
    • » PHP/MySQL
      • » Mempersingkat URL website dengan menggunakan .htaccess

Mempersingkat URL website dengan menggunakan .htaccess

Feb 20 2008

Ditulis oleh Dhimas Ronggobramantyo
Kategori: PHP/MySQL
Dibaca 11534 kali

Langsung lihat komentar

Anda lihat link halaman ini dibrowser anda? seperti apa linknya?
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.

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:

<FilesMatch "^artikel$"> 
ForceType application/x-httpd-php
</FilesMatch>

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
Hore, kita dapat nilai 1 nya yaitu pada variabel $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
Dimana $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 <img src="images/dodol.jpg" />. Ubahlah menjadi <img src="http://www.google.com/images/dodol.jpg" />

Mudah kan? bingung? pelajari lagi pelan-pelan. Contoh ini saya mengambil id nya, kalau web saya ini yang saya ambil judul artikelnya, kalau wordpress kalau tidak salah tanggalnya, jadi silahkan berkreasi dengan teknik ini.

Simpan artikel ini ke: Digg it Del.icio.us Furl Reddit

Komentar [23]

1
Komentar Dikirim oleh cosmo pada 20 Februari 2008 04:05:06 WIB

Wah...
Ini postingan paling aku nantikan....
Makasih banget ya.... Thanks... big grin

2
Komentar Dikirim oleh synd3r pada 25 Februari 2008 03:41:19 WIB

hmm.. bagus jg, saya cuma numpang liwat. Good job!. Walau mempersingkat url ga banyak bguna tapi jika dipadukan dengan enkripsi akan lebih baik lagi.
cuma ada koreksi sedikit:
Anda membuat url page anda seperti ini, sehingga link di rss feed jadi error.
ok thats all. keep your work going on bro!

3
Komentar Dikirim oleh ino pada 01 April 2008 11:07:38 WIB

Suhu....

4
Komentar Dikirim oleh lala termanise pada 15 April 2008 11:38:05 WIB

cocok sekaleeeeeeeeeeeeeeeeeeeeemuantttttttttttttttttttttttttttttaaaaaaaaaaaaaaaaaaaappppppppppppppppp
pisan broooooooooooooooooooooooooooo

5
Komentar Dikirim oleh dani pada 18 April 2008 11:24:03 WIB

untungnya di wp bs milih tinggal klik mo pake url model mana aja.. smile
secara pemula

maap tanya mas, ini engine situsnya nya pake apa ya..bikin sendiri?

salam,
http://daniiswara.net/

6
Komentar Dikirim oleh FIDO.PREDATOR pada 08 Mei 2008 11:00:53 WIB

HLLO...Q MAU TAU CARANYA NYARI CODE URL GAMBAR???......GNI CERITANAYA ....KAN Q MAU MENGHIAS LAYOUT FRIENDSTER TP GAMBAR YG Q PILIH BUAT LAYOUT FRIENDSTER GAK ADA CODE URLNYA ...JD GMN DONK....????CARI KODE URLNYA GMANA YA????PLEASE BLAS DI EMAIL Q "FIDO.PREDATOR@YAHOO.CO.ID"PLEASE YA...KASIH TAU CARANAYA>>>>OK>>>SALAM KNAL..

7
Komentar Dikirim oleh Dhimas Ronggobramantyo pada 26 Mei 2008 07:52:05 WIB

@dani
Ya bikin sendiri, jadi jangan dibandingin ama Blogspot apalagi WP big grin

@FIDO.PREDATOR
Klik kanan gambarnya, properties, dapat deh link nya

8
Komentar Dikirim oleh Bambang pada 21 Juli 2008 04:42:19 WIB

Good job mas ronggo...

9
Komentar Dikirim oleh Dewa pada 22 Juli 2008 11:50:58 WIB

saya buat file .htaccess
isinya sbb :

ForceType application/x-httpd-php

dan saya sudah siapkan test.php kemudian saya access http://localhost/learn/test/coba, saya restart apache server tapi hasilnya Object not found!, kenapa ya? trims buat pertolongannya ;)

10
Komentar Dikirim oleh Dewa pada 22 Juli 2008 11:55:24 WIB

wah ternyata tidak usah dikasih ext ya, sudah dicoba dan berhasil, thx buat ilmunya

11
Komentar Dikirim oleh aryalangu pada 25 Juli 2008 02:44:24 WIB

mantaaaaaaaaaaaaaaaaaap

12
Komentar Dikirim oleh diki pada 26 Agustus 2008 01:23:55 WIB

mas kalau dengan joomla gimana bisa ngga di begitukan?

13
Komentar Dikirim oleh pndwr pada 05 September 2008 02:00:02 WIB

wah akhirnya ketemu juga.... tutorial yang saya cari selama ini!!
saya pernah mencoba dengan fungsi str-replace, tapi gagal!

ternyata ada cara seprti ini yah... makasih yah, wah langsung saya terapin neh!

14
Komentar Dikirim oleh pianoforte pada 05 Oktober 2008 12:28:53 WIB

mmm......
Maknyussss.........
Tutorialyang bermanfaat........

15
Komentar Dikirim oleh tejo pada 06 November 2008 12:57:36 WIB

ajib

16
Komentar Dikirim oleh Purnata pada 02 Desember 2008 12:04:52 WIB

Saya mau edit web saya yang sudah online
secara online bisa. .....

tapi saya coba di localhost gak mau.....

saya menggunakan .htaccess

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


gimana cara biar bisa di localhost.... mohon bantuannya................

17
Komentar Dikirim oleh Purnata pada 02 Desember 2008 12:06:29 WIB

Saya mau edit web saya yang sudah online
secara online bisa. .....

tapi saya coba di localhost gak mau.....

saya menggunakan .htaccess

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


gimana cara biar bisa di localhost.... mohon bantuannya................

18
Komentar Dikirim oleh Syarifuddin Dahlan pada 29 Januari 2009 09:44:30 WIB

Thanks.... artikel-nya bagus banget dan sangat bermanfaat buat saya. Sudah ok dan berjalan dengan baik di web saya

19
Komentar Dikirim oleh rizki pada 10 Februari 2009 06:47:57 WIB

thanks..........sangat bermanfaat

20
Komentar Dikirim oleh ian pada 09 Mei 2009 08:49:38 WIB

toooooooo long in dong gw dr pagi di coba ga bisa-bisa nih.....
baru ampe...
http://www.google.com/latihan/artikel/1
eh malah tampil
Not Found

The requested URL /new/profil/1 was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

21
Komentar Dikirim oleh elkyur pada 20 Oktober 2009 04:13:58 WIB

Sundul gan

22
Komentar Dikirim oleh Hadoitz pada 02 November 2009 07:00:05 WIB

terimah kasih mas artikelnya. oh ya mas bisa buat webiklan ngak klau bisa sms budi (085274279153) terimah kasih

23
Komentar Dikirim oleh Putra pada 28 Desember 2009 03:20:44 WIB

mas, klo databasenya banyak gman??
contoh klo untuk e-commerce, yg ada hal adminnya??
coz sy lgi iseng2 bkin website e-commerce pke php mysql, n klo ngeliat url di addres bar kayanya jelek,,merusak pemandangan mata..
nah saya mohon tutornya...

Kembali keatas

Kirim Komentar:



Security Number