Reseller Domain Murah dan termurah di Indonesia? ya di ResellerCamp.
         
 

Forum PHP Indonesia

 
Advanced Search
   
 
Home Register FAQ Memberlist Usergroups  
 
 

Forum PHP Indonesia Forum Index Tutorial & Tips Tricks Trik Membuat URL SEO Friendly Menggunakan Rewrite htaccess
Display posts from previous:   
      All times are GMT + 7 Hours  

Trik Membuat URL SEO Friendly Menggunakan Rewrite htaccess

Post new topic  Reply to topic Goto page 1, 2, 3, 4  Next

Wed Jun 04, 2008 06:43
Author Message
Master Web
Jagoan PHP
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 Reply with quote

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
 
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 04, 2008 08:41
Author Message
hlie
I am PHP
I am PHP


Joined: 10 Apr 2008
Posts: 3050
Location: Singapore

Post subject: Reply with quote

hehehe mau utarakan pertanyaan udah dijelasin di atas =))

Cheer...... Drink Drink
_________________
Past is Experience,Present is Experiments,Future is Expectations,Use your Experience in your Experiments to achieve your Expectations...!!!
www.slackware.com
 
View user's profile Send private message Send e-mail Yahoo Messenger
      Back To Top  

Wed Jun 04, 2008 09:01
Author Message
.
Super Master PHP
Super Master PHP


Joined: 05 Apr 2008
Posts: 2225

Post subject: Reply with quote

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 -
 
View user's profile Send private message
      Back To Top  

Wed Jun 25, 2008 10:31
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

. 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
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 10:34
Author Message
.
Super Master PHP
Super Master PHP


Joined: 05 Apr 2008
Posts: 2225

Post subject: Reply with quote

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 -
 
View user's profile Send private message
      Back To Top  

Wed Jun 25, 2008 10:46
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

. 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... Big Smile
_________________
All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 11:05
Author Message
.
Super Master PHP
Super Master PHP


Joined: 05 Apr 2008
Posts: 2225

Post subject: Reply with quote

^([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 -
 
View user's profile Send private message
      Back To Top  

Wed Jun 25, 2008 11:43
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

. 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
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 11:47
Author Message
.
Super Master PHP
Super Master PHP


Joined: 05 Apr 2008
Posts: 2225

Post subject: Reply with quote

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 -
 
View user's profile Send private message
      Back To Top  

Wed Jun 25, 2008 11:57
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

. 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
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 12:02
Author Message
.
Super Master PHP
Super Master PHP


Joined: 05 Apr 2008
Posts: 2225

Post subject: Reply with quote

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 -
 
View user's profile Send private message
      Back To Top  

Wed Jun 25, 2008 12:03
Author Message
Master Web
Jagoan PHP
Jagoan PHP


Joined: 08 Feb 2008
Posts: 902
Location: Jakarta, udah nggak di YS [Yogyakarta/Surabaya]

Post subject: Reply with quote

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
 
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 12:07
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

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
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 12:15
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

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
Cry
LoadModule rewrite_module modules/mod_rewrite.so

maju terus pantang menyerah.... Assault Assault
_________________
All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 25, 2008 12:29
Author Message
mardziyant
PHP Programmer
PHP Programmer


Joined: 19 Dec 2007
Posts: 76
Location: Purwokerto Jawa Tengah

Post subject: Reply with quote

SUCCESS.....
Big Smile

trims Mas dot... Salute! Salute! hail hail
_________________
All Problems In Computer Science Can be Solved By Another level Of Indirection - Butler Lampson
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  
Post new topic  Reply to topic Goto page 1, 2, 3, 4  Next

 
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


      Back To Top  

Page 1 of 4
Goto page 1, 2, 3, 4  Next
Jump to:  
Powered by phpBB © 2001, 2002 phpBB Group
Toko Kaos Couple | Avalanche style by What Is Real © 2004 | Toko Baju Butik Online | Cara Pedia | Busana Baju Muslim