Flashcentury
Twitter
Facebook
Linkedin
Rss
.htaccess dosyası olmadan permalink yapımı (H-seo tekniği)

.htaccess dosyası olmadan permalink yapımı (H-seo tekniği)

Yazar admin

Kategoriler: PHP, SEO

Öncelikle bu tekniğin neden ihtiyaç haline geldiğinden bahsetmek istiyorum;

Windows server veya host kullananan kişilerin eğer Apachi Server kullanmıyorsa en büzük sıkıntılarından birisi Mod_Rewrite ve .htaccess dosyasını kullanamıyor olması. .htaccess dosyası kullanılamadığı için hazırlanan web projelerine permalink uygulanamıyor. Permalink Web sitenin linklerinin daha profesyonel görünmesine dahada önemlisi başta Google olmak üzere başlıca arama motorlarında daha kolay bulunmasını sağlıyor.

Tamamen bana ait olan H-seo tekniğini yukarıda bahsettiğim sıkıntıyı çeken Windows Server kullanıcılarına armağan ediyorum :)

isterseniz hemen anlatmaya başlayayım;

1. Adım : url ‘miz üyerinden değişken transferi

ilk olarak Query_String metodu ile web sitemizi url ’sinden sonra gelen değişkenleri alıyoruz;

$url= $_SERVER['QUERY_STRING'];

Sonra ( / ) işaretlerini split fonksiyonu ile parçalıyoruz ve get0, get1, get2 seklinde değişkenlere yazdırıyoruz;

list($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7, $get8, $get9 ) = split('[/]', $url);

Fakat eğer gelen veriler belirsiz ise ve siz gelen veriye göre kodlamanız faklı yönlere gidecekse aşağıdaki şekilde de url ‘yi parçalayabilirsiniz.

$hseo = explode('/', $url);

Bu şekilde ( / ) işaretleri ile ayrılan değişkenleri hseo adlı Array değişkenine atamış olduk.

2.Adım : Linkler

Aslında linkler her ne kadar hazırladığımız siteye göre değişsede ön önemli şart ( ? ) işareti ile değişkenlerimizin başladığını belirmez gerektiğidir.

Şimdi örnek olarak bir kitap sitesi yaptığımızı farzedelim ve bu kitap sitesinde kitaplar, yazarlar ve yayınevleri adlı üç sayfa olduğunu varsayalım;

www.orneksite.com/?/kitap/flashcentury
www.orneksite.com/?/yazar/Huseyin-kocak
www.orneksite.com/?/yayinevi/xxx-yazıncılık

şeklinde linkler kullanmımız gerekiyor. Aslında kilit nokta ( ? ) işaretinde saklı, bu işaretten sonra tarayıcımız bir veri geldiğini anlıyor ve 404 hata sayfasına yönlendirmiyor. Biz ise bu avantajdan faydalanarak değişkenlerimizi sanki bir klasör dizini gibi sıralıyoruz ve 1. Adımda bahsettiğim şekilde değişkenlerimizi alıyoruz, aslında bu yönteme alternetif bir get tekniğide diyebiliriz.

linklerimizi oluşturuken bir diğer sıkıntı ise eğer url ‘de yeralacak değişkenler bir databank ‘tan gelecekse türkçe karakterler ve özel semboller olacaktır fakat bu sorununda çözümü oldukça kolay;

Aşağıdaki fonksiyonu kullanarak türkçe karakterleri temizleyebilirsiniz:

function uyarla($deger) {
$bul=array("ş","Ş","ı","(",")","'","ü","Ü","ö","Ö","ç","Ç"," ","/","*","?","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç","ü","Ü");
$duzelt=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($duzelt,$bul,$deger);
$deger = preg_replace("@[^A-Za-z0-9\-_]+@i","",$deger);
return $deger;
} 

İserseniz şimdi yukarıdaki fonksiyonu kullanarak dinamik bir şekilde link oluşturalım,

$link1 = "www.orneksite.com/?/kitap/" .uyarla(sql['kitap']);
$link2 = "www.orneksite.com/?/yazar/" .uyarla(sql['yazar']);
$link3 = "www.orneksite.com/?/yayinevi/" .uyarla(sql['yayinevi']);

Yukarıdaki örnekte sql isimli bir database baglantisi ve bu bağlantıda kitap, yazar ve yayinevi isimli fielt ‘ler olduğunu düşünün.

uyarla() fonksiyonunu çok daha kapsamlı olarak kullanmak isterseniz buraya tıklayarak açılan linkteki fonksiyonu inceleyebilirsiniz.

3.Adım : değişkenlerimizi kullanma

Sıra geldi son adıma, yukarda bahsettiğim örnekten devam ederek anatmak çok daha faydalı olacağını düşünüyorum;

Kitap sitemizde kitap, yazar ve yayın evi isimli üc bölüm var demistik, şimdi de yine bu üç bölüme ait birer Php sayfası oldugunu farzedelim ve biz url ‘den gelen değişkenlere göre bu sayfalarını index ‘imize include edelim.

switch ($hseo[1]) {
case "kitap":
    include "kitap.php";
    break;
case "yazar":
    echo "yazar.php";
    break;
case "yayinevi":
    echo "yayinevi.php";
    break;
}

işte bu kadar :) $hseo[1] değişkenimiz (?) işaretinden sonraki slahlar arasındaki (/kitap/) veriyi temsil ediyor ve biz switch aracılığı işle değişkenin ne olduğunu anlayıp uygun sayfayı include ediyoruz.

Şimdi örneği biraz daha dinamik hale getirelim ve tek sayfa üzerinden bir sql sorgusu yaptıralım;

Örneğim vertabani diye bir Mysql tablomuz var ve bu tablo içinde kitap, yazar ve yayinevi isimli fielt ‘ler bulunmakta (2. Adımdaki kullandığımız örnekteki gibi)

$sql = mysql_query ("SELECT * FROM vertabani  WHERE " . $hseo[1] . " = ' " . $hseo[2] . " '  LIMIT 1 ");

www.orneksite.com/?/kitap/flashcentury –> Sol taraftaki linki verdiğimizde MySql sorgumuz aşağıdaki şekilde yorumlanmış olacaktır.

$sql = mysql_query ("SELECT * FROM vertabani  WHERE kitap = ' flashcentury '  LIMIT 1 ");

burada kitap –> $hseo[1] ve flashcentury –> $hseo[2] değişkenlerine atanmış olacaktır.

Evet arkadaşlar umarım faydalı olmuşumdur. Yukarıda da bahsettiğim gibi Windows Server kullanan arkadaşlar için geliştirdiğim bu tekniğin örnek kullanımını aşağıdaki linkten indirebilirsiniz.

Not : Örnek dosyalar hazırlandıktan sonra buraya konulacaktır.

Hseo Yönteminin avantajları
- .Htaccess dosyası kullanılamayan Hosting hesaplarında veya Windows Server ‘lerde rahatlıkla kullanılabilir.
- 404 hata sayfalarına erişim sağlamayan Hosting hesaplarında uygulanabilir
- Benzer bir teknik olan 404 hata sayfası üzerinden yapılan permalink tekniği bazı arama motorları tarafından yinede hata olarak kabul edilir, hatta bazı üstatların ittihasına göre artık Google ‘da hata olarak görmektedir fakat bu yöntemde böyle bir hata algılaması söz konusu değildir.
- Permalink ‘in sagladığı Seo avantajlar (arama motorları tarafından daha üst sıralarda yeralmak) bu yöntem ilede mümkündür.
- 404 hata sayfası üzerinden calışmasına kıyasla daha hızlı ve sorunsuzdur
- 404 hata sayfa üzerinden calistirmak bazen işe yaramaz, örneğin 404.php diye bir dosya oluşturup bütün index sayfasını bu dosya üzerinden calistırısınız fakat Server bu dosyayı bir uyarı sayfası olarak düşünür ve php kodlarını calıştırmaz sadece Html muamelesi yapar, fakat Hseo tekniğinde bözyle bir sorun sözkonusu değildir.

Hseo Dezavantajları
- Aslında kullanım kolaylığı ve hız açısından hiç bir dezavantajı yoktur fakat linklerde yeralan ( ? ) işareti görünüm olarak bir eksi puan kazandırıyor.

Bu Yazıyı Paylaşın

Facebook Twitter StumbleUpon del.icio.us Digg Reddit Technorati RSS

21 Ocak 2010

Etiketler: , , , , , , , , , , , , , , , , ,

Benzer Yazılar

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

2 Yorum Comments For This Post I'd Love to Hear Yours!

  1. m.türk diyor ki:

    farklı, güzel bir teknik. fakat nasıl kullanacağımız konusunda biraz daha açıklama yapabilirmisiniz?

  2. flashcentury diyor ki:

    Bu konuda bir makale daha yazacağım ve örnek dosya hazirlayip download imkani sunmayi düşünüyorum fakat takıldığınız bir konu varsa buradan sorabilirsiniz…

Leave a Comment Here's Your Chance to Be Heard!