Permalink nasıl yapılır? Permalink yani Türkçe değişiyle Kalıcı Bağlantı... Öncelikle anlatımı geçmeden önce ne işe yarar ondan biraz bahsedelim. Permalink sayesinde biliyorsunuz ki Ulu Üstad Google
sitemize bir kıyak geçerek( bilinenlere göre ) arama motorunda üst sırada çıkmamızı sağlıyor. Biliyorsunuzdur aynı içerikli www.siteadi.com/film-indir.html , www.siteadi.com/hedele.html gibi iki sayfada film indir kelimesinde ilk sayfa daha önce çıkar.
Şimdi gelelim ne şekilde bir yöntem izleyeceğiniz. Makaleye başlamadan önce şunu garanti ediyorum ki birazcık küçücük bir php bilgisiyle sizde herhangi bir scripte ait sitenizdeki linkleri permalayabileceksinizLaughing
Kullancağımız modül Bkz. Mod_Rewrite. Öncelikle www.harmankaya.org/goster.php?id=5 gibi bir linki www.harmankaya.org/goster-3-yazi-basligi.html gibi kafamdan bir örnek buluyorum ve başlıyorum. İlk işimiz .Htaccess dosyası kullanarak .php dosyayı html olarak yorumlamayı göreceğiz Bunun için /root altındaki .htacces dosyasına ekleyeceğimiz kod
Öncelikle en üste Mod_Rewrite modülüne göre link verceğimizi sunucumuza anlatıyoruz
Yukarda gördüğünüzüzere goster-(.*)-(.*) daki her (.*) için bir değer atayabileceğimi söylüyorum. id=$1&baslik=$2 de de sıra ile $1 inci kısım yani query stringdeki ID nin ilk (.*) a, $2 kısım yani baslik kısmınıda ikinci (.*) atayacağımı belirttim.
Yani .htaccess dosyasına bunları yazıp /root a attıktan sonra bilgisayarınızın tarayıcısından www.sitenizadi.com/goster-3-yazi-adi.html ye girerseniz girdiğiniz değer sunucuda goster.php?id=3&baslik=yazi-adi şeklinde yorumlanır.
Yani sözün özü burda aslında bir cinlik yapıyoruz biz aslına bakarsanız goster-3-yazi-adi.html yerine goster-3-oylesine-bir-baslik-iste.html de yazsam goster-3-dfdsf8dsf9sdfhgkdfsghkjffd.html de yazsam yine de sayfa görüntülenir, Çünkü bizim için mühim olan İD kısmı ID yi atadıktan sonra başlığa ne istrsen yaz
hah şimdi herşey tamam artık Sunucumuza Yorumlama yeteneği kazandırdıktan sonra linkleri güzelleştirmeye yani aslı Permalink kısmı şimdi başlıyor.
Mesela www.harmankaya.org/yazi.php?id=3 ü permalink yapmadan önce nasıl gösteriyorduk. şöyle değilmi diyelim < a href = " yazi.php?id=< ? e c ho $yaziid ; ? > \ > diye gosterdiğiniz linkleri < a href = " goster-< ? e c ho $yaziid ; ? >-< ? e c ho $yazibaslik ; ? > \ > yapacaksınız bu kadar yani azcık php bilginiz varsa bunuda yaaprsınız artık
Neyse ama sonra göreceksiniz ki linklerde türkçe karakterlerin veya +%&''^+ şeklinde karakterlerin hatalı çıktığı bununda sayfa görüntülenmesi hatası verdiğini göreceksiniz. Bizde bunun için bir fonksiyon geliştirdik .
Ne mi yapıyor herhangi bir metindeki boşluk yerine - (tire) koyuyor ayrıca bütün Türkçe karakterlerden arındırıyor ( Ne kötü birşey keşke türkçe karakterleride yorumlayabilsek ben çok seviyorum Ş yi Ç yi Ö yü Neyse kullanımıda basit zaten
Yazar: Erhan Harmankaya
Alıntıdır: Kaynak
Şimdi gelelim ne şekilde bir yöntem izleyeceğiniz. Makaleye başlamadan önce şunu garanti ediyorum ki birazcık küçücük bir php bilgisiyle sizde herhangi bir scripte ait sitenizdeki linkleri permalayabileceksinizLaughing
Kullancağımız modül Bkz. Mod_Rewrite. Öncelikle www.harmankaya.org/goster.php?id=5 gibi bir linki www.harmankaya.org/goster-3-yazi-basligi.html gibi kafamdan bir örnek buluyorum ve başlıyorum. İlk işimiz .Htaccess dosyası kullanarak .php dosyayı html olarak yorumlamayı göreceğiz Bunun için /root altındaki .htacces dosyasına ekleyeceğimiz kod
Öncelikle en üste Mod_Rewrite modülüne göre link verceğimizi sunucumuza anlatıyoruz
Kod:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^goster-(.*)-(.*).html$ goster.php?id=$1&baslik=$2 [L,NC]
Yukarda gördüğünüzüzere goster-(.*)-(.*) daki her (.*) için bir değer atayabileceğimi söylüyorum. id=$1&baslik=$2 de de sıra ile $1 inci kısım yani query stringdeki ID nin ilk (.*) a, $2 kısım yani baslik kısmınıda ikinci (.*) atayacağımı belirttim.
Yani .htaccess dosyasına bunları yazıp /root a attıktan sonra bilgisayarınızın tarayıcısından www.sitenizadi.com/goster-3-yazi-adi.html ye girerseniz girdiğiniz değer sunucuda goster.php?id=3&baslik=yazi-adi şeklinde yorumlanır.
Yani sözün özü burda aslında bir cinlik yapıyoruz biz aslına bakarsanız goster-3-yazi-adi.html yerine goster-3-oylesine-bir-baslik-iste.html de yazsam goster-3-dfdsf8dsf9sdfhgkdfsghkjffd.html de yazsam yine de sayfa görüntülenir, Çünkü bizim için mühim olan İD kısmı ID yi atadıktan sonra başlığa ne istrsen yaz
hah şimdi herşey tamam artık Sunucumuza Yorumlama yeteneği kazandırdıktan sonra linkleri güzelleştirmeye yani aslı Permalink kısmı şimdi başlıyor.
Mesela www.harmankaya.org/yazi.php?id=3 ü permalink yapmadan önce nasıl gösteriyorduk. şöyle değilmi diyelim < a href = " yazi.php?id=< ? e c ho $yaziid ; ? > \ > diye gosterdiğiniz linkleri < a href = " goster-< ? e c ho $yaziid ; ? >-< ? e c ho $yazibaslik ; ? > \ > yapacaksınız bu kadar yani azcık php bilginiz varsa bunuda yaaprsınız artık
Neyse ama sonra göreceksiniz ki linklerde türkçe karakterlerin veya +%&''^+ şeklinde karakterlerin hatalı çıktığı bununda sayfa görüntülenmesi hatası verdiğini göreceksiniz. Bizde bunun için bir fonksiyon geliştirdik .
PHP:
function permayap($deger) {
$turkce=array("ş","Ş","ı","(",")","'","ü","Ü","ö","Ö","ç","Ç"," ","/","*","?","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç","ü","Ü");
$duzgun=array("s","S","i","","","","u","U","o","O","c","C","-","-","-","","s","S","i","g","G","I","o","O","C","c","u","U");
$deger=str_replace($turkce,$duzgun,$deger);
$deger = preg_replace("@[^A-Za-z0-9\-_]+@i","",$deger);
return $deger;
}
Ne mi yapıyor herhangi bir metindeki boşluk yerine - (tire) koyuyor ayrıca bütün Türkçe karakterlerden arındırıyor ( Ne kötü birşey keşke türkçe karakterleride yorumlayabilsek ben çok seviyorum Ş yi Ç yi Ö yü Neyse kullanımıda basit zaten
PHP:
$yenibaslik = permayap($eskibaslik)
Yazar: Erhan Harmankaya
Alıntıdır: Kaynak