|
| |
|
|
All times are GMT + 7 Hours
|
|
Trik Membuat URL SEO Friendly Menggunakan Rewrite htaccess
 |
Wed Jun 04, 2008 06:43 |
 |
Author |
Message |
Master Web Jagoan PHP

Joined: 08 Feb 2008 Posts: 902 Location: Jakarta, udah nggak di YS [Yogyakarta/Surabaya]
|
| Post subject: Trik Membuat URL SEO Friendly Menggunakan Rewrite htaccess |
|
|
Membuat URL SEO Friendly Menggunakan Rewrite htaccess
+ Apa itu URL SEO Friendly?
yaitu URL Address suatu website yang bagus untuk Search Engine Optimization
+ Contohnya ?
http://oscms.sirihmerah.com/article/6/the-end-of-animated-gif-images-decade.html
URL diatas SEO friendly dan lebih "disukai" Google dibandingkan
http://oscms.sirihmerah.com/?page=article&id=2
Intinya url yang baik dalam hal SEO friendly adalah url yang menunjukkan isi dari
halamannya atau keyword dari isi halamannya.
Jadi baiknya :
- Url hendaknya menjelaskan isi dari halamannya, atau keywordnya (tapi jangan nipu kalo gak mau diblack list ma google)
- Url hendaknya mengarah ke file (jangan http://aku.com/?id=2) kalo bisa file dengan ekstensi html bukan php atau htm (percaya gak yang ini? xixixi)
+ Caranya Gimana?
(dalam hal ini kita pakai htaccess, btw apa bisa pakai cara lain? bisa kok xixixix)
Biar gampang kita studi kasus aja, bikin weblog aja yang hanyabisa posting artikel, tapi URL artikelnya SEO Friendly kayak punya blogspot lihat deh
misal nama domain kita --> http://hafid.com (xixixix narsis lagi)
1. Bikin tabel artikel aku kasih nama --> tb_artikel
fieldnya (id_artikel int 11 , judul_artikel varchar 255 , isi_artikel text )
2. Bikin kode untuk menampilkan artikel misal dengan nama --> artikel.php
Prosedurenya gini
Jika aksesnya --> http://hafid.com/artikel.php
Halaman artikel.php akan menampilkan daftar semua judul artikel dan link menuju ke artikelnya itu aja, boleh juga ditambah resume dari artikel
bagaimana link artikelnya? biasanya kita main gampang aja --> http://hafid.com/artikel.php?id=id_artikel
bagaiman kodenya? waduh masak gak bisa seeeeh ya dah aku bikinin sederhanyanya gini
<?php
// include dulu yang perlu diinclude untuk konek database dsb
include "config.php";
include "blablabla.php";
if (!empty($_GET['id'])) {
$id=(int)$_GET[id];
$exe = mysql_query('select * from tb_artikel where id_artikel='.$id);
$show = mysql_fetch_array($exe);
echo '<p>'.$show['judul_artikel'].'</p>';
echo '<p>'.$show['isi_artikel'].'</p>';
}
else{
$exe = mysql_query('select * from tb_artikel order by id_artikel desc');
while ($show = mysql_fetch_array($exe)){
echo '<p>';
echo '<a href="artikel.php?id='.$show['id_artikel'].'">';
echo $show['judul_artikel'];
echo '</a>';
echo '</p>';
}
}
?>
3. Pada kode diatas penerapan linknya gak SEO friendly kenapa karena URL link ke artikelnya modelnya kayak gini :
http://hafid.com/artikel.php?id=id_artikel
alasannya :
- URL tersebut gak menunjukkan isi dari artikel
- URL tersebut tidak mengarah ke spesifik file tunggal dalam arti meski ke file artikel.php adalah file tunggal tapi variabel yang dikirimkannya menunjukkan hal yang lain
serta ekstensi filenya masih serverside (PHP) jadi harusnya yang clientside macam HTML itu saranku bukan file dengan ekstensi HTM (boleh dibantah xixixi)
Lantas gimana?
Jadi target kita adalah mengelabuhi Search Engine, xixixixix. Ok serius nih, kita akan ubah url tersebut menjadi :
http://hafid.com/artikel/id_artikel/judul_artikel.html
4. Buat file ".htaccess", Caranya buka notepad kalo gak punya boleh catat pakai buku xixixix, tulis kode berikut
# ------- Mulai ------- #
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^artikel/([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$ artikel.php?id=$1 [L]
# ------- Akhir ------- #
Gampangkan? apa? bingung? xixixix sam kalo gitu,tapi yang perlu Anda perhatingkan adalah bagian RewriteRulenya atau dengan kata lain alias
jadi intinya adalah aturan kalo ada yang ngetik url bla..bla.. bla.. maka sama server akan menganggap itu blablabla yang lain sesuai Rulenya atau aturannya
Lihat :
- ^artikel/([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$ --> Ini adalah URL yang mau di aliaskan, artinya ketika ada yang masuk dengan URL berformat kayak gitu maka server akan menganggap daia masuk dengan URL
- artikel.php?id=$1
keterangan :
^artikel/ -> URL bisa diawali karakter apa aja misal : http://hafid.com dan ditambah string artikel/ -> http://hafid.com/artikel/ (Match)
([0-9]+)/ -> Hanya mengijinkan karakter 0-9
([a-zA-Z0-9_-]+) -> Mengijikan karakter a-z, A-Z , 0-9
(\.html) -> berakhiran .html
artikel?id=$1 -> URL yang kita inginkan, lalu apa $1, $1 adalah id dari artikel yang akan berubah dinamis tergantung id_artikelnya, lho kok bisa, ya bisa dunk lihat
([0-9]+) -> $1 // variabel pertama
([a-zA-Z0-9_-]+) -> $2 // variabel kedua
Dalam hal ini yang kita perlukan variabel pertama aja yaitu untuk id_artikelnya nanti.
Udah dulu aja lantas simpan kode tersebut dengan nama ".htaccess" tanpa tanda kutip.
Kalo pakai notepad ketika nyimpen pilih save as type -> Save All, lalu masukkan nama filenya dengan ".htaccess" dengan tanda kutip, kalo nggak bisa cari aja file .htaccess yang sudah ada kamu edit dalamnya, cari diinternet.
kalo udah silahkan letakkan (upload) keserver file tersebut.
5. Lantas jalankan websnya misal akses --> http://hafid.com/artikel.php
Udah? lalu klik link artikelnya! Udah, tapi lho kok linknya tetep aja gak SEO FriendLy? Ya iya lah, kalo Anda berpikir seperti itu berarti Anda salah paham. xixixix
Jadi langkah kita adalah merubah dari link tersebut menjadi SEO Friendly sesuai arturan di .htaccess
Caranya ? buat sendiri yah aku capek xixixix,
<?php
// include dulu yang perlu diinclude untuk konek database dsb
include "config.php";
include "blablabla.php";
if (!empty($_GET['id'])) {
$id=(int)$_GET[id];
$exe = mysql_query('select * from tb_artikel where id_artikel='.$id);
$show = mysql_fetch_array($exe);
echo '<p>'.$show['judul_artikel'].'</p>';
echo '<p>'.$show['isi_artikel'].'</p>';
}
else{
$exe = mysql_query('select * from tb_artikel order by id_artikel desc');
while ($show = mysql_fetch_array($exe)){
echo '<p>';
$judul=substr(strip_tags($show['judul_artikel']),0,100); // 100 aja gak perlu panjang2
$judul=strtolower($judul).".html"; // tambah dengan .html biar kayak file html, huruf ubah kecil semua biar asyik
$judul=str_replace(' ','-',$judul); // ubah spasi dengan strip, mengapa? agar rapi di urlnya
echo '<a href="/artikel/'.$show['id_artikel'].'/'.$judul.'">'.$show['judul_artikel'].'</a>';
echo '</p>';
}
}
?>
6. Selesai, silahkan dicoba, misal kamu punya artikel dengan judul "Siapa Hafid Mukhlasin" dengan id_artikel = 5 maka linknya menjadi begini
http://hafid.com/artikel/5/siapa-hafid-mukhlasin.html
Dimana server akan menganggapnya :
http://hafid.com/artikel.php?id=5
7. OK gimana mudah bukan? betewe kalo ditanya apakah saya udah mencoba kode diatas? saya jawab belum. Aku nyoba untuk kasus yang berbeda di http://oscms.sirihmerah.com
Intinya demikianlah logikanya, saran saya kode2 saya diatas jangan dimasukin hati, maksudnya jangan asal dikopas tapi difahami betul jika ada yang keliru dibetulkan OK
Akhirnya saya berharap mudah2an bermanfaat, namun jika ada salah2 ketik saya mohon maaf, OK tunggu tutorial berikutnya, Sampai Jumpa |
|
| |
|
|
 |
Wed Jun 04, 2008 08:41 |
 |
Author |
Message |
hlie I am PHP


Joined: 10 Apr 2008 Posts: 3050 Location: Singapore
|
| Post subject: |
|
|
hehehe mau utarakan pertanyaan udah dijelasin di atas =))
Cheer......  _________________ Past is Experience,Present is Experiments,Future is Expectations,Use your Experience in your Experiments to achieve your Expectations...!!!
www.slackware.com |
|
| |
|
|
 |
Wed Jun 04, 2008 09:01 |
 |
Author |
Message |
. Super Master PHP


Joined: 05 Apr 2008 Posts: 2225
|
| Post subject: |
|
|
ada yg kurang... mengaktifkan modul mod rewrite di httpd.conf
dan tiap web server apache punya karakterisktik masing2
baik utk pengaktifan modul-nya
maupun pembacaan query string setelah redirect
lalu utk parameter [L] => last, jg blom dijelasin,
soalnya ada yg lain yg biasa dipake
[NC] no case, yg ini sering dipake supaya /LINK/ , /Link/ , /link/ ...dst... dianggap sama
[R] redirect
[F] forbid *atau false ya... sori lupa, males buka manual apache :D*
kalo dipake bersamaan misal [NC,L] _________________ #ccdbea
Juliet: "What's in a name? That which we call a rose by any other name would smell as sweet."
Hamlet: "To be, or not to be: that is the question."
- William Shakespeare - |
|
| |
|
|
 |
Wed Jun 25, 2008 10:31 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| . wrote: | ada yg kurang... mengaktifkan modul mod rewrite di httpd.conf
dan tiap web server apache punya karakterisktik masing2
baik utk pengaktifan modul-nya
maupun pembacaan query string setelah redirect
lalu utk parameter [L] => last, jg blom dijelasin,
soalnya ada yg lain yg biasa dipake
[NC] no case, yg ini sering dipake supaya /LINK/ , /Link/ , /link/ ...dst... dianggap sama
[R] redirect
[F] forbid *atau false ya... sori lupa, males buka manual apache :D*
kalo dipake bersamaan misal [NC,L] |
usah aku coba tapi koq malah "Internal Server Error"... _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 10:34 |
 |
Author |
Message |
. Super Master PHP


Joined: 05 Apr 2008 Posts: 2225
|
| Post subject: |
|
|
kalo pesan spt itu (Error 500), biasanya rule-nya yg salah
coba di post kemari rule yg ditulis di htaccess-nya
catatan, error yg nungul biasanya 2 macem
404 :
ini rule-nya sudah bener, tapi file yg dituju gak ada
atau modul mod rewrite gak nyala / belum diaktifkan
500 :
salah penulisan rule _________________ #ccdbea
Juliet: "What's in a name? That which we call a rose by any other name would smell as sweet."
Hamlet: "To be, or not to be: that is the question."
- William Shakespeare - |
|
| |
|
|
 |
Wed Jun 25, 2008 10:46 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| . wrote: | kalo pesan spt itu (Error 500), biasanya rule-nya yg salah
coba di post kemari rule yg ditulis di htaccess-nya
catatan, error yg nungul biasanya 2 macem
404 :
ini rule-nya sudah bener, tapi file yg dituju gak ada
atau modul mod rewrite gak nyala / belum diaktifkan
500 :
salah penulisan rule |
| Quote: |
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^/([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$ index.php?page=news&nid=$1 [L] |
maksud hati mau untuk URL gini mas:
myweb.com/index.php?page=news&nid=$id
makanya ^/ ga aku isi..biar jadinya myweb.com/judul_artikel.html
kira-kira seperti itu mas...  _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 11:05 |
 |
Author |
Message |
. Super Master PHP


Joined: 05 Apr 2008 Posts: 2225
|
| Post subject: |
|
|
^([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$
hilangkan '/' paling awal
btw, gak bisa jadi gini : myweb.com/judul_artikel.html
coba dibaca regex-nya
ada tiga bagian yg mau anda capture :
([0-9]+) => $1
([a-zA-Z0-9_-]+) => $2
(\.html) => $3
dan dr regex tsb yg ditulis di address bar bentuknya :
/123/abc atau /123/abc.html _________________ #ccdbea
Juliet: "What's in a name? That which we call a rose by any other name would smell as sweet."
Hamlet: "To be, or not to be: that is the question."
- William Shakespeare - |
|
| |
|
|
 |
Wed Jun 25, 2008 11:43 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| . wrote: | ^([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$
hilangkan '/' paling awal
btw, gak bisa jadi gini : myweb.com/judul_artikel.html
coba dibaca regex-nya
ada tiga bagian yg mau anda capture :
([0-9]+) => $1
([a-zA-Z0-9_-]+) => $2
(\.html) => $3
dan dr regex tsb yg ditulis di address bar bentuknya :
/123/abc atau /123/abc.html |
mas udah aku coba kaya' gini :
| Quote: |
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$ index.php?page=news&nid=$1 [L]
|
URL link=echo '<a href="/'.$row[0].'/'.$judul.'">selengkapnya</a>';
catatn, $row[0]=id
hasilnya masih kaya' gini:
| Quote: |
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
|
_________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 11:47 |
 |
Author |
Message |
. Super Master PHP


Joined: 05 Apr 2008 Posts: 2225
|
| Post subject: |
|
|
coba anda panggil secara manual dulu...
ketik di address bar : http://localhost/xxx/yyy
anda ganti xxx dgn id artikel, dan yyy dgn title artikel (encoding dulu spasi dgn karakter lain) _________________ #ccdbea
Juliet: "What's in a name? That which we call a rose by any other name would smell as sweet."
Hamlet: "To be, or not to be: that is the question."
- William Shakespeare - |
|
| |
|
|
 |
Wed Jun 25, 2008 11:57 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| . wrote: | coba anda panggil secara manual dulu...
ketik di address bar : http://localhost/xxx/yyy
anda ganti xxx dgn id artikel, dan yyy dgn title artikel (encoding dulu spasi dgn karakter lain) |
wah dengan manual juga masih error mas.
myweb.com/12/raja_rimba.html
| Quote: |
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)(\.html)?$ index.php?page=news&nid=$1 [L] |
atau ada konfigurasi lain yg ga bener ya mas? _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 12:02 |
 |
Author |
Message |
. Super Master PHP


Joined: 05 Apr 2008 Posts: 2225
|
| Post subject: |
|
|
saya coba di local saya jalan...
coba anda ulik2 sendiri dulu bagian :
^([0-9]+) ...
index.php ...
tambahkan / hilangkan "/" di depan index dan ([0-9]+)
jadi :
^/([0-9]+) ...
/index.php ...
anda coba2 kombinasinya _________________ #ccdbea
Juliet: "What's in a name? That which we call a rose by any other name would smell as sweet."
Hamlet: "To be, or not to be: that is the question."
- William Shakespeare - |
|
| |
|
|
 |
Wed Jun 25, 2008 12:03 |
 |
Author |
Message |
Master Web Jagoan PHP

Joined: 08 Feb 2008 Posts: 902 Location: Jakarta, udah nggak di YS [Yogyakarta/Surabaya]
|
| Post subject: |
|
|
Kalo kamu pakai XAMPP (Basic Package) setting
httpd.conf ubah untuk modul mod rewrite aktifkjan dulu ok? dijamin bisa kok xixiix gitu aja kok repot |
|
| |
|
|
 |
Wed Jun 25, 2008 12:07 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| Master Web wrote: | Kalo kamu pakai XAMPP (Basic Package) setting
httpd.conf ubah untuk modul mod rewrite aktifkjan dulu ok? dijamin bisa kok xixiix gitu aja kok repot |
OC dicoba dulu.... _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 12:15 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
| Master Web wrote: | Kalo kamu pakai XAMPP (Basic Package) setting
httpd.conf ubah untuk modul mod rewrite aktifkjan dulu ok? dijamin bisa kok xixiix gitu aja kok repot |
ada apa di PC ku ya.....koq tetp ga jadi
LoadModule rewrite_module modules/mod_rewrite.so
maju terus pantang menyerah....  _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
 |
Wed Jun 25, 2008 12:29 |
 |
Author |
Message |
mardziyant PHP Programmer


Joined: 19 Dec 2007 Posts: 76 Location: Purwokerto Jawa Tengah
|
| Post subject: |
|
|
SUCCESS.....
trims Mas dot...  _________________ All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson |
|
| |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
Page 1 of 4 Goto page 1, 2, 3, 4 Next |
|
|
|