Php ile SEO’lu Sistemler ve Php SEO Betiği (Script)

Php ile SEO’lu Sistemler ve Php SEO BetiÄŸi (Script) Google

Bu yazımda size Php programlama dilini kullanarak nasıl SEO’lu sistemler yazabileceÄŸinizi anlatmak istedim. Fakat bunu en iyi bir örnek üzerinde gösterebileceÄŸimi anladım ve bu düşünceyle Php SEO betiÄŸini (script) yazdım. Bu betiÄŸin ufak, basit ama ihtiyacınız olan hemen her ÅŸeyi içerdiÄŸini düşünüyorum.

Özellikleri

Php SEO betiğinin temel ve geliştirilmeye açık özelllikleri şu şekildedir:

Arama motoru dostu adresler
Bu betikte yazıların adresleri http://www.siteniz.com/yazi-adresi.html,
sayfaların adresleri http://www.siteniz.com/sayfa/sayfa-adresi/ ve
anasayfanın adresi http://www.siteniz.com/anasayfa/ ve ÅŸeklindedir. Sakın yazıların sonu “.html” ile bitiyor diye betiÄŸin içinde html sayfaları olduÄŸunu düşünmeyin.

Her yazıya ve sayfaya özgü metalar
Bu betikte anasayfada farklı, her yazı ve her sayfada farklı site başlığı, meta description ve meta keywords görüntülenir. Farklıdan kastım örneğin o an hangi yazı görüntüleniyorsa o yazının başlığı site başlığı olup, o yazı için belirlenmiş ve veritabanında saklanan meta bilgileri sitenin meta bilgileri olarak görüntülenir. Böylece arama motorları sitenizi tam ve doğru olarak indeksleyebilir.

Sitemap.xml desteÄŸi
Bu basit sistem için bir de otomatik güncellenen sitemap.xml mekanizması yazdım. Siz içeriği güncelledikçe o da kendiliğinden güncellenecektir.

Çalışma Mantığı

Arama motoru dostu adreslerin, meta bilgilerinin ve sitemap.xml’in çalışma mantığını ayrı ayrı incelemek lazım.

Adreslerin çalışma mantığıPhp SEO Veritabani
Veritabanındaki tablomuzda her yazının ve sayfanın bir de adres isimli alanı mevcut. Sağda görmüş olduğunuz tablo hem yazılar hem de sayfalar içindir. Böyle bir sisteme yazacağınız yönetim panelinde girilen yazı başlığını, aşağıdaki gibi bir seo fonksiyonuyla uygun bir adres haline getirerek veritabanındaki adres alanına giremelisiniz. Bu şekilde $_GET ile alacağınız adresi veritabanındaki adres alanından kontrol edebilirsiniz. Örneğin başlık Yusuf Güney Aşk-ı Virane ise bunun adresi fonksiyonda süzüldüğünde yusuf-guney-ask-i-virane olacaktır.
[php]function seola($s) {
$tr = array(‘ÅŸ’,'Åž’,'ı’,'İ’,'ÄŸ’,'Äž’,'ü’,'Ü’,'ö’,'Ö’,'Ç’,'ç’);
$eng = array(‘s’,'s’,'i’,'i’,'g’,'g’,'u’,'u’,'o’,'o’,'c’,'c’);
$s = str_replace($tr,$eng,$s);
$s = strtolower($s);
$s = preg_replace(‘/&.+?;/’, ”, $s);
$s = preg_replace(‘/[^%a-z0-9 _-]/’, ”, $s);
$s = preg_replace(‘/\s+/’, ‘-’, $s);
$s = preg_replace(‘|-+|’, ‘-’, $s);
$s = trim($s, ‘-’);
return $s;
}[/php]
Not: Merak etmeyin, bu fonksiyonu betiğin içinde seo.php isimli bir dosyaya ekledim, oradan alabilirsiniz.

Veritabanına adresi girdikten sonra sitenin .htaccess dosyasını ayarlamak kalıyor. Bu ayar sayesinde
http://www.siteniz.com/yazi-adresi.html ÅŸekindeki adresi
http://www.siteniz.com/yazi.php?yazi=yazi-adresi şeklindeki adrese yönlendiriyoruz. Bunun için de .htaccess dosyasını şu şekilde düzenledim.
[sourcecode language='php']RewriteEngine On
RewriteRule ^anasayfa/ index.php [L]
ReWriteRule ^(.*).html yazi.php?yazi=$1 [L,NC]
ReWriteRule ^sayfa/(.*)/ sayfa.php?sayfa=$1 [L,NC]
ReWriteRule ^sitemap.xml sitemap.php[/sourcecode]

Metaların Çalışma Mantığı
Yukarıdaki baÅŸlıkta vermiÅŸ olduÄŸum veritabanı tablosuna bakarsanız her yazıyı girerken ayrıca tanim(description) ve anahtar(keywords) hanelerinin de girildiÄŸini anlayabilirsiniz. Böylece bir yazı görüntülenirken sitenin meta description ve meta keywords’lerini bu alanlardan alabiliriz. Bu iÅŸlemi yapmak için betikteki meta.php dosyasında bulabileceÄŸiniz meta() isimli bir fonksiyon ekledim. Nasıl yapıldığını oradan direk görebilirsiniz. Sadece yazacağınız yönetim panelinde bu alanlara da veri girileceÄŸini unutmayın yeter.

Otomatik güncellenen sitemap.xml mantığı
Arama motorlarının özellikle istediÄŸi site haritası dosyası (sitemap.xml) aslında betikte yok fakat oluÅŸturmuÅŸ olduÄŸum ve çalışır durumdaki sitemap.php dosyasını .htaccess dosyasındaki ayarla sitemap.xml olarak gösteriyoruz. Böylece hem Php’nin gücü ile direk veritabanından bilgileri alabiliyoruz, hem de bu dosyayı .xml dosyası ÅŸeklinde arama motorlarına tanıtabiliyoruz.

Kurulum

Kurulum oldukça basit.
* Bir sonraki başlıktan betiği indirin.
* Paketin içinden çıkan klasörü sunucunuza yükleyin.
* Betik klasöründe bulunan veritabani.sql dosyasını oluşturacağınız veritabanında çalıştırın.
* ayar.php dosyasını açarak veritabanı bağlantısı ve site adresi için gerekli ayarları yapın.

Not: Eğer bu söylediklerim size çok yabancı geliyorsa önce kendinizi php üzerinde geliştirmenizi tavsiye ederim. Bu yazı programcılara hitap ettiği için lütfen veritabanı nedir, sunucu nedir, nereye yükleyeceğim gibi sorular sormayalım.

Php SEO Test ve İndirme Bilgisi

Bu kadar açıklamadan sonra artık betiği test edeceğimiz veya indirebileceğimiz adreslere yönelebiliriz.
Php SEO betiÄŸini test etindir

Php SEO betiği bendeniz Yakuter tarafından SEO Teknikleri için yazılmıştır.

Erişilebilirlik ve W3C,Webmaster Araçları 72 Yorum 11.945 Okunma Yazan: Erhan Yakut

PaylaÅŸ

Çeviri / Translation

English German Italian France Polish Russian Spannish Ukrainian Bulgarian Dutch Finnish Hindi Japanese Norwegian

Benzer Yazılar

“Php ile SEO’lu Sistemler ve Php SEO BetiÄŸi (Script)” için 72 yorum bulunuyor.

  • 07 Mart 2009, 16:07

    # ReWriteRule ^(.*).html yazi.php?yazi=$1 [L,NC]
    # ReWriteRule ^sayfa/(.*)/ sayfa.php?sayfa=$1 [L,NC]

    Bu kısımları anlayamadım. yazi.php?yazi=1 denmiş. adreste 1 değil de başka bir değer olsa farketmeyecek mi? beni aydınlatırsanız sevinicem

     
  • 07 Mart 2009, 18:24

    Oradaki 1 sayı olarak 1 değil $1 şeklinde bir değişken. Hemen öncesinde (.*) şeklinde belirtilen değer bu kod ile $1 değişkenine alınıyor. Örnek üzerinden anlatmak gerekirse:

    ReWriteRule ^erhan-yakut.html yazi.php?yazi=erhan-yakut

    Umarım böyle daha anlışılır olmuştur.

     
  • 08 Mart 2009, 00:01

    Güzel yazı , bu paket çok işime yariyacak. Yeni sitemde bu betiğinden yararlanıcam , çok teşekkürler.

     
  • 08 Mart 2009, 01:37

    Faydalı olmasına sevindim. Kullanılacak olmasına ise daha da sevindim. Zaten yazma sebebimiz bu değil mi? ;)

     
  • 5 Baha
    10 Mart 2009, 11:50

    Erhan Bey çok faydalı bir makale olmuş.Benim sormak istediğim 1-2 sorum var.
    Öncelikle linklerimi şu şekilde gösterebiliyorum ;
    http://www.xxx.com/viewarticle.php?articleid=443&title=diziye-yeni-karakter-geliyor

    Ancak bu adres için .htaccess içine tam olarak ne yazmalıyım ki adres :
    http://www.xxx.com/443-diziye-yeni-karakter-geliyor.html

    olarak çıksın.Denemelerimde hep başarısız oldum.
    Şimdiden çok teşekkürler.

     
  • 10 Mart 2009, 14:10

    selamlar,
    örnek içerisindeki $sql=”SELECT * FROM yazilar WHERE adres=’$_GET[yazi]‘”; satırı bana sql injection a sebep olacak gibi göründü. Bu durumun bir genel çözümü mevcut mu ?

     
  • 7 onder
    10 Mart 2009, 18:17

    merhaba;
    aslında denesem sormama gerek kalmaz ama şimdi deneyecek vaktm yok bir hafta sonra lazım olacak;

    # ReWriteRule ^(.*).html yazi.php?yazi=$1 [L,NC]
    yerine
    # ReWriteRule ^(.*)/ yazi.php?yazi=$1 [L,NC]
    yazsam http://www.sayfam.com/onemli-yazi/ ya verilen link
    http://www.sayfam.com/yazi.php?yazi=onemli-yazi adresine gider deÄŸil mi?
    yoksa başka bir ayar mı gerekir bunun için

     
  • 10 Mart 2009, 19:55

    @onuracun, elbette ki sql injection’a ve bilimum saldırılara oldukça açık bir örnek bu. Biz bunu alıp olduÄŸu gibi kullanın demiyoruz, diyemeyiz. Burada dikkatinizi çekmek istediÄŸimiz husus .htaccess kullanımı ve veritabanındaki adres alanı gibi hususlar. Bu nedenle oldukça basit bir betik. Kaldı ki yönetim paneli bile olmayan yani veri giriÅŸi yapılmayan bir örnek. Biz iÅŸin SEO kısmındayız ;)

    @onder, evet sorun olmaz, dediğiniz gibi çalışır.

     
  • 9 GammaUnion
    11 Mart 2009, 02:38

    Ben bu betiği kendi şablonuma uyarlayıp denedim. Şablonumda

    böyle bir kod var. http://localhost/sablon/resimler/xhtml_ikonu.gif i herhangi bir html sayfası gibi çalıştırıyor. Bir anlam veremedim. Neden kaynaklanıyor olabilir?

     
  • 11 Mart 2009, 02:50

    @GammaUnion Bey, bunun sebebi .htaccess dosyasının yanlış düzenlenmiş olması. Şuan test alanındaki betikte düzgün çalışıyor. (bkz. resim) Bu durumda sizin düzenlerken bir hata yapmış olma ihtimaliniz artıyor.

    Not: Bu tür sorularınızı forumdaki bu başlıkta paylaşırsanız sevinirim.

     
  • 11 Mart 2009, 02:54

    @Baha Bey, RewriteEngine On satırından sonra aşağıdaki kodu denerseniz büyük ihtimalle amacınıza ulaşırsınız.

    ReWriteRule ^(.*)-(.*).html viewarticle.php&id=$1&title=$2 [L,NC]

     
  • 15 Mart 2009, 15:25

    Gammaunion

    kurallar dizisindeki “RewriteEngine On” satırını ÅŸu ÅŸekilde deÄŸiÅŸtirir misin ?

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

     
  • 16 Mart 2009, 02:11

    @haymac, yorumunda oldukça haklısın. Sonuçta ilgili dosya ve klasör yoksa şeklinde bir ibare belirtirsek daha sağlam bir .htaccess erişimi elde edebiliriz. Fakat şu da var ki eklediğimiz her satır, düşündüğümüz her ayrıntı için makalede yeni bir paragraf ile açıklama yapmamız gerekir. Tabi bundan da öte insanların temel konudan uzaklaşması demektir. Bu nedenledir ki güvenlik önlemlerine, ayrıca bir yönetim paneli yazma olayına hiç girmedim. Bırakalım insanlar işin temelini öğrensinler. Üzerine zaten zamanla katabilirler.

     
  • 16 Mart 2009, 04:22

    Öncelikle merhabalar,
    Süper ötesi bir makale olmuş,seo işini ilk defa öğrenmeye başlayacağım makalenizi okudum benim sorum farklı olacak umarım yardımcı olabilirsiniz.

    Benim hazır bir script kullanıyorum ve sistemin 3 farklı seo su var.Örnek olarak;

    1- http://www.site.com/id-konuadı.html

    2- http://www.site.com/kategori/altkategori/id-konuadı.html

    3- http://www.site.com/2008/04/02/id-konuadı.html

    şeklinde örnek verebilirim.

    Ben genel olarak 2 nolu seo yu kullanıyorum bunu mesela ordaki id (konu sırası) ve sondaki .html yazılarını kaldırabilir miyim acaba?Gördüğüm kadarı ile bu çok daha faydalı bir sistem sadece .htacces düzenlemem yeterli olur mu diye denedim .html yazılarını sildigim zaman önce açtığım konulara giremiyorum :) Çok yabancıyım bu konuya en kısa sürede cevabınızı bekliyorum.Saygılarımla…

     
  • 16 Mart 2009, 12:58

    Merhaba osifox,
    Malesef bu olaylar öyle bir iki deÄŸiÅŸiklikle çözülebilecek konular deÄŸiller. .htaccess ile yönlendirilen veriyi sistem tarafından doÄŸru ÅŸekilde çözümlemek gerekir. Yani sadece .htaccess’te deÄŸiÅŸiklik yaparak sistemin istediÄŸin gibi çalışmasını saÄŸlaman malesef mümkün deÄŸil.

     
  • 16 Mart 2009, 16:42

    yani anladığım kadarı ile birden fazla dosya düzenlemek gerekiyor, kurcalayayım biraz belki bulurum cevabınız için çok teÅŸekkür ederim Erkan Yakut,Saygılar…

     
  • 17 önder
    17 Mart 2009, 18:24

    merhaba
    tekrar bir soru. cevizde sordum sallayan olmadı. buraya sorayım dedim tam da bu konuyla ilgili olduğu için

    bütün örneklerde türkçe karakterleri replace ile değiştirerek kullanılmış ama wikideveya drupalde buna gerek duymadan bu işlem yapılabiliyor. mesela:http://tr.wikipedia.org/wiki/Hakan_%C5%9E%C3%BCk%C3%BCr
    gibi.

    bu bağlantı firefoxda
    http://tr.wikipedia.org/wiki/Hakan_Şükür
    ÅŸeklinde ie6 da da
    http://tr.wikipedia.org/wiki/Hakan_%C5%9E%C3%BCk%C3%BCr
    şeklinde çıkıyor. ama her halükarda google amcam bunu
    http://tr.wikipedia.org/wiki/Hakan_Şükür olarak görüyor. ve sorunsuzca sayfa açılıyor.
    şimdi merak ettiğim linkleri bu şekilde kullanmak için ne yapmak gerekli. ya da bi şey yapmadan da bu iş oluyor da sırf adres çubuğundaki estetik görünüm kaygısıyla mı bu iş yapılıyor.

     
  • 17 Mart 2009, 23:50

    Merhaba Önder Bey,
    Sorunuzun cevabını tam olarak bilmediğim için bir araştırma içine girdim. Vikipedi bozulan adresi (url) yeniden düzeltiyor. Bunu nasıl yaptığını ve karakterleri nasıl doğru algıladığını öğrendiğim anda sorunuzu cevaplayacağım.

    Bunu söylüyorum çünkü diğer sitelerdeki gibi sizinle ilgilenilmediğini düşünmenizi istemiyorum.

     
  • 19 önder
    18 Mart 2009, 01:24

    merhabalar
    çok teşekkürler. öncelikle belirteyim ceviz le ilgili öyle bir şey demiş olmayayım. sanırım orada da bir çok kişi bu olayı bilmiyor. o yüzden uzun süre cevap verilmeyip altta kalınca otomatik olarak sallanılmamış oluyor :)

    bu arada aynı sistem drupal in de içinde var.
    ben de onun kodlarına bakmayı düşünüyorum ama drupal çok karmaşık bir sistem olduğu için çözemeyeceğim muhtemelen. sizin de bilginiz olsun dedim belki drupal in kodları yardımcı olabilir

     
  • 20 önder
    24 Mart 2009, 21:05

    tekrar merhaba;
    sorumun cevabı çok kolaymış. her şeyi utf-8 kodlayarak yaptığınızda hiç bir şey yapmanıza gerek kalmadan türkçe karakterler sorun olmaktan çıkıyor.

    anca şimdi başka sorularım var
    birincisi şu satır sonlarında kullandığınız [L,NC]ya da [L] ya da başka bir yerde gördüğüm [L,QSA]nın anlamları nedir. hatta bir kaç yerde bunu hiç kullanmadan yapılan örnekler de gördüm.

    ikincisi siz yukarıda iki çeşitli yönlendirme yapmışsınız ben ne zaman bunu denesem ikisi de çalışmıyor. yani tek kural koyduğumda sorun yok ikinciyi koyunca birinci de iptal oluyor nerede hata yapıyor olabilirim

    son soru yine yukarıdaki sayfa/(.*) örneği gibi birşey yaptığımda site sanki gerçekten bir alt klasördeymiş gibi davranıyor. bu yüzden de grafik ve stil dosyalarını görmüyor. bu neden kaynaklanıyor olabilir

     
  • 25 Mart 2009, 00:51

    Önder Bey sorularınızı forumda paylaşırsanız öncelikle çok sevinirim.

    1. Her satırın sonunda gördükleriniz koşulları bildiren bayraklardır. Şuradaki makalede örnekleriyle birlikte güzel bir şekilde açıklanmış.

    2. Nerede hata yaptığınızı bilmemiz mümkün değil.

    3. Keşke betiği inceleseydiniz. Sorunun cevabını görebilirdiniz. Betikte siteynin adresini barındıran bir değişken taşıyorum ve resim kodunda bu değişken ile beraber resmin adreisni yazıyorum. Böylece alt klasörde de olsa resimler gerçek adresinden çağırılır.

    Forumlarda görüşmek üzere…

     
  • 22 önder
    25 Mart 2009, 12:28

    ilginize teşekkürler,
    betiği incelememiştim gerçekten hatta indirmemiştim bile :)
    bunun sebebi eğer indirirsem olduğu gibi elimdeki sisteme uydurmaya çalışıp kullanacağımı bilmemdi. Doğrudan hazır bir şeyi apartırsam da elimde çalışan ama ne olduğundan haberim olmayan bir sistem olacaktı. onun yerine sürekli sorun çıkaran bir türlü çözemediğima ama en sonunda çözdüğümde herşeyini de anladığım bir sistem olmasını yeğlerim.

    daha 6 yaşında siyah beyaz televizyonumuzu incelerken bozmuştum. karakter özelliği sanırım :)kurcalamadan rahat edemiyorum

     
  • 23 Tunç
    26 Mart 2009, 04:07

    Hocam ben .htaccess dosyasında gerekli ayarları yaptım fakat çalıştıramadım dosyayı sildiğimde dahi sistemde herhangibir değişiklik olmuyo hostun windows olmasından kaynaklanıyo olabilir mi?

     
  • 26 Mart 2009, 08:54

    Evet sorun barındırmada olabilir. Windows host aslında .htaccess ile çok sıkıntılı fakat siz yine bir araştırın onu. Bildiğim kadarıyla .htaccess sadece Linux için çalışan bir konu.

     
  • 25 Tunç
    26 Mart 2009, 22:23

    Evet sorun ondan kaynaklanıyormuş. Aynı sıkıntıyı yaşayan bir arkadaş bir forumda anlatmış ve bir çözüm sunmuş;

    !Alıntı!
    ArkadaÅŸlar buldum çözümü.. Modrewrite diye bir program buldum.. IIS üzerine yüklenen ISAPI ile sorunu çözüyor ve .htaccess dosyalarını okuyor.. Mükemmel çalışıyor.. Tavsiye ederim.. Yalnız program limitli 1000 kere editliyor demo versiyonunda, ondan sonra server’a restart çekmeniz gerekli..Herkes güle güle kullansın

    Download için:

    http://www.micronovae.com/ModRewrite/DownloadPro.html
    !Alıntı!

    Ben denemedim denemeyide düşünmüyorum ama aynı sorunu yaşayan başka biri belki deneyip yorum yapar diye buraya yazıyorum.

     
  • 26 Bora
    27 Mart 2009, 09:38

    başarılı bir çalışma, paylaşım için teşekkurler

     
  • 27 emre
    27 Mart 2009, 13:59

    Merhaba,

    öncelikle sağolun çok yalın ve güzel bir çalışma olmuş.

    Benim sorunum htaccess ile alakalı.

    Örneğin test yerinde de, http://www.yakuter.com/test/phpseo/anasayfa/ çalışıyor ancak, http://www.yakuter.com/test/phpseo/anasayfa çalışmıyor.

    .htaccess te sona bir tire konulması ile ilgili kod vardır muhakkak ancak bulamadım, yardımcı olursanız sevinirim

     
  • 27 Mart 2009, 18:40

    Şu kod sayesinde anasayfa sonunda / olacak şekilde çalışıyor.

    RewriteRule ^anasayfa/ index.php [L]

     
  • 29 emre
    27 Mart 2009, 19:00

    pardon demek istediğimi anlatamadım sanırım. Örneğin;

    http://www.yakuter.com/test/phpseo/sayfa/hakkinda/ –> çalışıyor
    http://www.yakuter.com/test/phpseo/sayfa/hakkinda –> çalışmıyor

    Linklerin sonlarında / olmadığında çalışmıyor, / ekleyip doğru sayfaya nasıl yönlendirebiliriz demek istemiştim.

    teşekkürler cevabınız için bu arada.

     
  • 27 Mart 2009, 22:51

    @Emre Bey dürüst olmak gerekirse ben iÅŸin PHP kısmı üzerinde çok fazla yoÄŸunlaÅŸtığım için .htaccess üzerinde sadece ihtiyacımı giderecek kadar bilgi sahibiyim. Bu sorunuz üzerine de ilk yapacağım ÅŸu olurdu; Normal .htaccess’teki ReWriteRule ^sayfa/(.*)/ sayfa.php?sayfa=$1 [L,NC] kodunun hemen altına bir de ReWriteRule ^sayfa/(.*) sayfa.php?sayfa=$1 [L,NC] ÅŸeklinde kod eklemek. Bilginiz olsun diye söylüyorum, bu ÅŸekilde localhost’ta denedim ve çalıştı.

     
  • 28 Mart 2009, 17:45

    [L,NC] kodu ne işe yarıyor acaba? sitemap.xml yi yönlendirirken o kodu kullanmıyoruz. Sabit içerikler dışında kullanmak zorundayız sanırım o kodu. Öyle mi?

     
  • 28 Mart 2009, 18:49

    @MujaHeed, ortaya koymuş olduğun varsayım doğru değil. Yani bahsettiği iki şey arasında bir ilişki yok. Sadece ben koymadım ama sitemap satırına [L,NC] koysan da çalışır. [L,NC] nin anlamı son bayrağın harfe duyarlı olmadığıdır. Bu konu çok derin. Detaylarını şurada görebilirsin. Şimdilik gördüğün gibi kullanman yeterli olacaktır.

     
  • 28 Mart 2009, 22:36

    [...] temel olarak nasıl kullanılacağını merak ediyorsanız sizin için hazırlamış olduÄŸum Php SEO BetiÄŸi’ni (Script) inceleyebilirsiniz. Webmaster Araçları Yorum Yok 4 Okunma Yazan: Erhan Yakut var [...]

     
  • 34 cafer
    10 Nisan 2009, 13:52

    Sayın Erhan Yakut,
    İlk kez seo ile ilgileniyorum. Sizin deneme betiÄŸinizi apache localhostta kurdum. Her ÅŸey tamam ama test sayfasındaki hangi linke tıklasam, “Sayfa bulunamadı” diyor. Nerede hata yapıyorum acaba?

     
  • 14 Nisan 2009, 00:29

    @Cafer Bey, öncelikle bilgisayarınıza kurmuÅŸ olduÄŸunus sunucunun yani apache’nin rewrite modülü aktif olmalı. Ancak bunu yaparsanız .htaccess çalışmaya baÅŸlar ve aranan sayfalar bulunur ;)

     
  • 18 Nisan 2009, 10:55

    sitemap.php dosyasını .htaccess dosyasındaki ayarla sitemap.xml olarak gösteriyoruz.

    Bir php dosyasını sitemap.xml olarak gösterdiğimizde Google ya da bir başkası site haritasına girdiğinde tüm site içeriğini çekicek çok geniş bir sorgu ve veri alma işlemi olucak. Her çalıştığında bütün sitenin içeriğini yeniden yansıtılacak. Bunun yerine yeni bir yazı eklendiğinde sitemap.xml dosyayı oluşturup, güncelleyen bir şey yapılması daha mantıklı olabilir diye düşünüyorum. Çok güzel bir anlatım ve paylaşım olmuş, iyi kodlamalar.

     
  • 37 cafer
    18 Nisan 2009, 16:17

    İlginize teşekkürler Erhan Bey,
    Bilgisayarı sonraki açışımda rewrite çalıştı. Sanırım rewrite modülünü açtıktan sonra apache serverı yeniden başlatmamışım ve bu yüzden görmemiş.
    Yeni bir soru daha:
    seo.php dosyasındaki fonksiyonu nasıl göstereceğiz. Siteye aynen mi atacağız?
    Şimdiden teşekkürler.

     
  • 19 Nisan 2009, 12:53

    @Musa, söylediÄŸin ÅŸey kısmen doÄŸru. Yani sitemap.php’yi sitemap.xml olarak göstermek içeriÄŸin tamamını görüntülemesi anlamına gelmemeli. sitemap.php dosyasında son 10 yazıyı çekersin olur biter. Yani iki durum birbiriyle iliÅŸkili deÄŸil. Önemli olan senin sitemap.php dosyasında hangi verileri ne kadar çektiÄŸin.

    Uygulamayı beğenmene sevindim ;)

     
  • 24 Nisan 2009, 11:06

    Saol erhan, senin sayende ogrendik bu işide scpritim vardı tek eksik seoydu snin sayende oda oldu
    da sunu anlamadım seolamada ?

    function seom($s) {
    $tr = array('i','İ','ı','ğ','Ğ','ü','Ü','ç','Ç','Ö','ö');
    $en = array('i','i','i','g','g','u','u','c','c','o','o');
    $s = str_replace($tr,$en,$s);
    $s = strtolower($s);
    $s = str_replace(' ', '-', $s);

    return $s;

    }

    $baslik = "Said Önder Albayrak";
    echo seom($baslik);

    bu gayet sorunsuz calısıor fakat sen ;

    function adres($b) {
    $trc = array('ş','Ş','i','ı','İ','Ğ','ğ','ü','Ü','ö','Ö','O','Ç','ç');
    $enc = array('s','s','i','i','i','g','g','u','u','o','o','o','c','c');
    $b = str_replace($trc,$enc,$b);
    $b = strtolower($b);
    $b = preg_replace('/&.+?;/', '', $b);
    $b = preg_replace('/[^%a-z0-9 _-]/', '', $b);
    $b = preg_replace('/\s+/', '-', $b);
    $b = preg_replace('|-+|', '-', $b);
    $b = trim($b, '-');

    return $b;
    }

    bu şekilde uzatmışsın tahminen /[ vs. yi bos olarak yapıyorda preg_replace niye ?? str_replace de aynı işi gormuyormu ??
    mesela ben


    $o = str_replace(' ', '-', $o);
    yapıorum bosluklar - oluyor ??

     
  • 27 Nisan 2009, 21:58

    @Sa1donder, mesele sadece boÅŸlukları almak deÄŸil. Ayrıca insanların baÅŸlıklarda kullanabileceÄŸi & gibi karakterleri de - karakterine dönüştürmek. Malum kod yazarken insanların baÅŸlık olarak ne gireceÄŸi belli olmaz. Ayrıca güvenliÄŸi tehdit eden ÅŸeyler de olabilir. Amacımız harf, sayı ve – dışındaki tüm karakterlerden kurtulmak. Uzatmamın debebi budur ;)

     
  • 02 Mayıs 2009, 02:55

    Basit ama güzel bir örnek vermişsiniz ellerinize sağlık hocam.

     
  • 42 Erkan
    16 Mayıs 2009, 18:01

    Merhaba öncelikle bu göze hoş gelen görünümü ve her yönüyle harika bloğunuzu bir süredir takip etmekteyim. Gerçekten başarılı yorumlarınız var dedikten sonra.

    Benimde bir sorum olacak.

    Phpseo betiğini localhostta çalıştırıyorum ve yazı sayfası düzgün bir şekilde çalışıyor fakat sayfalar yani hakkında ve iletişim bölümüne tıkladığımda sayfanın üst ve alt kısmı sorunsuz fakat veritabanındaki veriyi çekmiyor. Başlık metin kısmından bahsediyorum. Bu sorun sizce neden kaynaklanıyor olabilir.

     
  • 43 Erkan
    16 Mayıs 2009, 18:07

    Birde şunu belirteyim adres satırına :

    localhost/phpseo/sayfa.php?sayfa=hakkinda veya localhost/phpseo/sayfa.php?sayfa=iletisim

    yazdığımda herhangi bir sorun yok.

     
  • 17 Mayıs 2009, 01:30

    @Erkan Bey, eÄŸer sayfa geliyorsa sorun .htaccess’te veya genel yapıda deÄŸildir. Fakat global deÄŸiÅŸkenlerin alımında bir sorun var sanırım. Yani .htaccess ile belirtilen yapıya göre sayfa.php?sayfa=hakkinda ile /sayfa/hakkinda/ aynı ÅŸeyler. Fakat sizin sisteminizde sanırım .htaccess tam olarak çalışmıyor. Bunun üzerinde düşünürseniz çözüm bulabileceÄŸinizi düşünüyorum. Bu hatayı ilk kez duyduÄŸum için sorunun genel deÄŸil, sizin sisteminizdeki özel bir durumdan kaynaklandığını düşünüyorum.

     
  • 45 Erkan
    18 Mayıs 2009, 17:25

    Cevabınız için teÅŸekkür ediyorum. Sorun appserver’ın eski sürüm olmasından kaynaklanıyordur büyük ihtimal.
    Şu yapıda ^sayfa/(.*)/ baştaki sayfayı sildiğimde
    direk /hakkinda/ olarak çalışıyor.
    Neyse bu sorun sayesinde url yapısını kurcalayarak farklı yapılar kullanarak deneyim sahibide oldum. Buda bir artı oldu benim için :)

     
  • 46 Erkan
    21 Mayıs 2009, 16:37

    Kusura bakmayın tekrar rahatsız ediyorum.
    Bu betiği localhostta çalıştırıp sayfaları açabiliyomusunuz sadece bendemi bu sorun.

    .htaccess düzenlemesinde :
    ^sayfa/(.*)/ sayfa.php?sayfa=$1 [L,NC]
    Link düzenlemesi :
    localhost/phpseo/sayfa/hakkinda/
    Bu şekilde çalışmıyor fakat

    .htaccess düzenlemesinde :
    ^(.*)/ sayfa.php?sayfa=$1 [L,NC]
    Link düzenlemesi :
    localhost/phpseo/hakkinda/
    Bu haliyle sorun yok

    Fakat ben ilk örnekteki haliyle kullanmak istiyorum olmuyor. Appserver kullanıyorum ve sürümü değiştirdim şuanda sürümüm 2.5.9 Tekrar denememe rağmen olmadı. Bu sorunu yaşayan yada benim bu sorunu yaşamamam için önerisi olan varmı acaba.

     
  • 24 Mayıs 2009, 09:55

    @Erkan Bey, malesef sisteminizle ilgili bir sorun olduÄŸunu düşünüyorum. Belki internette bir alanda deneyip sorunun betikte mi yoksa sizde kurulu Appserver’da mı olduÄŸunu görebilirsiniz.

     
  • 27 Mayıs 2009, 12:23

    Mükemmel bir çalışma Erhan. Çok teşekkürler. Php ile SEO uyumlu web siteleri yapmak isteyenler için en iyi çalışma diyebilirim.

     
  • 30 Mayıs 2009, 18:07

    Süper bir çalışma. Bunu script olarak kullanılabilir. Geriştirilebilir ve seo açısından da çok güzel..

    Hazırlayanların ellerine sağlık :)

     
  • 02 Haziran 2009, 15:20

    Merhaba ArkadaÅŸlar Çalışmanız Güzel OlmuÅŸ TeÅŸekkürler…
    Benim Sorunum Urlyi
    örnegin
    kullanici.sitem.com/kullanici/kullaniciadi ( daha açık anlatacak olursak

    site.com/kullanici/kullaniciadi şeklinde çagırdıgım zaman çalışmıyor
    ancak
    site.com/kullanici/?w=kullaniciadi&u=kullaniciadi çeklinde çagırdıgımda çıkıyor.

    .htaccses de ilgili alan

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^profiles/([^/]+)/([^/]+)?$ /profile.php?u=$1$2 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^profiles/?$ /profile.php [L]

    Yardımcı Olursanız Sevinirm :)

     
  • 51 Sedat
    15 Haziran 2009, 03:39

    Bilgiler ve dosyalar için teşekkürler. Bu bilgiler en basit şekilde verilebilirdi. Sayenizde epeydir üşendiğim bir işe başlamaya karar verdim.

     
  • 52 oasis
    19 Haziran 2009, 18:40

    acaba yakın zamanda bunun veritabanına kayıt edebilen ve kontrol yapna bir örneğine yazabilirmisiniz??

    yani formdan aldığı bilgilerle kullanıcıyı veritabanına kayıt edip daha sonra uyegiris.php ile kullanıcı formda username kısmına ne yazdı ise onu benimsite.com/username şeklinde siteye online yapmak ..

    veya kullanıcı formdan bir haber giricekse baslık==bu haber baslığı içerik==falan filan gönder dediği zamn bunu hem veritabanına kayıt edip
    hemde haber benimsitem.com/haber/bu-haber-basligi.html ÅŸeklinde yazabilmek

    makale süper bu soruma cevabını bekliyorum çok önemli..saygılar teşekkürler

     
  • 53 oasis
    22 Haziran 2009, 16:10

    erhan bey benim .html lerden oluÅŸan basit bi sitem var hakkimizda.html
    iletisim.html egitim/universiteler.html gibi..
    denedim olmadı bunları nasıl hakkımızda/ iletisim/ .html olmadan gösterebilirim nasıl bi değişiklik yapmam lazım htaccess de
    teşekkürler saygılar

     
  • 01 Temmuz 2009, 13:26

    @oasis, söylediğin gayet mantıklı bir istek, değerlendirmekte fayda var ;)

    .html sitene gelirsek şöyle bir kod işine yarayabilir

    RewriteEngine On
    RewriteRule ^hakkimizda/ hakkimizda.html [L]

     
  • 01 Temmuz 2009, 13:38

    @Tayfun, .htaccess’te bir sorun var gibi. Åžu kod üzerinde çalışmayı deneyebilirsin.

    RewriteEngine On
    ReWriteRule ^kullanici/(.*)/ profile.php?u=$1 [L,NC]

     
  • 13 AÄŸustos 2009, 13:31

    önce anlamakta zorluk çektim ama inceledikçe hoşuma gitti ama bir sorum olacak anladığım doğruysa linkleri seolayıp tabloya alıyorsun sonra tablodan seolanmış linki çağırıyorsun. benim aklıma takılan yeni yazı eklerken neler yapılması gerektiği olacak burada yapılmış bir iş var ama yazı nasıl eklenecek. birazda onu anlatsanız

     
  • 14 AÄŸustos 2009, 17:12

    Gerçekten harika bir makale. Birde etiket mantığını kullansanız 1 numaralı seo olucak sanırım :)

     
  • 20 AÄŸustos 2009, 01:41

    Hocam verdiginiz bilgiler gercekten cok faydali.Sormak istedigim su benim sitemde bir tane seo kurulu halde ama sizin verdiginiz bana daha mantikli.Bu seonun üzerine sizin seoyu kurmam mümkün olurmu?Sonrada telafisi olmayan bir hatayla karsilasmak istemiyorum.Bu konu hakkinda beni aydinlatirsaniz cok memnun olurum

     
  • 20 AÄŸustos 2009, 03:06

    Hocam bi problemle karsilastim ”Betik klasöründe bulunan veritabani.sql dosyasını oluÅŸturacağınız veritabanında çalıştırın”diyorsunuz tüm ayarlari yaptim ama sitemin ismini yazdigim zaman http://www.yakuter.com/test/phpseo/anasayfa/ burasi cikiyor.Cözemedim sorunu yardimci olursaniz,bu seo’dan faydalanmak isterim.

     
  • 29 AÄŸustos 2009, 15:17

    Sorunlarınızı Yardım Forumlarımıza yazabilirsiniz.

    SEO Teknikleri Yönetimi

     
  • 61 Yavuz BAYAR
    10 Eylül 2009, 17:34

    Aynı haber basligi yani adres tekrarlanirsa n olacak? ayni baslikli haberden 2 tane olursa nasil bir cozum uretmemiz gerekecek.. tesekkurler.

     
  • 62 Yavuz BAYAR
    10 Eylül 2009, 17:35

    $caner

    site adını belirten bir değişken var orda yolu doğru yazdığınıza emin olmaslınız.. ayar.php içinde.

     
  • 63 ibrahim
    27 Eylül 2009, 13:22

    hocam seoyu çok güzel anlatmışsınız ancak bir sorum olacak. seo.php dosyasını sisteme nasıl kattığınızı anlamadım yani seo.php nasıl etkin oluyor hiç bir yerde göremedim aydınlatırsanız memmun olurum

     
  • 13 Ekim 2009, 12:11

    Gerçekten güzel bir çalışma. Bu bilgileri paylaştığınız için teşekkür ederim.

     
  • 21 Ekim 2009, 18:29

    Çok faydalı bir yazı, teÅŸekkürler. WordPress blogumun kalıcı baÄŸlantı yapısı sizin anlattınız gibi. Fakat bir çok yerde .htaccess dosyasına yapılan müdahalelerle seo’ ya katkı yapıldığından bahsediliyor. Bunu WP sistemler için nasıl yapabileceÄŸimi yorumda yada yeni bir yazıda anlatabilir misiniz?

     
  • 66 cem
    28 Kasım 2009, 13:58

    .htaccess in yaptıgı işlemi yapacak bir php betiği yazılabilirmi acaba ?
    bunun nedeni linux serverlarda sorunsuz kullanabiliyoruz ama win serverlada kullanmıyor olmamız ama bir php betiği yazarak win serverlar içinde kullana bilir yapılabilirmi !!!

     
  • 08 Aralık 2009, 02:00

    Bunun için PHP betiği ile uğraşmak yerine bazı ISS yamaları var. Onlardan faydalanmanızı tavsiye ederim. ISS ile beraber PHP kodlamayı düşünürseniz aradığınız sonuca ulaşabilirsiniz. Bunu düşünerek aramalarınıza devam edebilirsiniz.

     
  • 68 Analitik SEO
    23 Aralık 2009, 12:32

    Erhan merhaba,

    phpseo betiğini şu sıralar zaman bulursam afilli bir hale getirmeyi düşünüyorum.

    Etiket sistemi
    Sayfalama
    İçerik yığını
    Site haritası
    rss

    yönetim paneli
    kategori düzeni
    icerik düzeni
    sayfa düzeni

    şeklinde bir çalışma yapacağım, sizinle iletişim kurup kaynak dosyaları ulaştırırım.

    Åžimdiden kolay gelsin. :)

     
  • 69 Semih
    22 Åžubat 2010, 13:22

    Öncelikle bu faydalı anlatım için teşekkür ederim. Benim sitemap ile alakalı bir sorum var. Sizce sitemap hangi sıklıkta pinglenmeli? Günde 1-2 kere mi yoksa her yeni içerik eklendiğinde mi?

     
  • 21 Mart 2010, 20:23

    kurmakda sorun yaşıyordum bu php sürümünden kaynaklanıyormuş kurdum ama bu son php sürümünde çalışmıyor hata weriyor bunu son php sürümüne göre düzenleyebilirmisiniz acaba

     
  • 09 Nisan 2010, 18:04

    Hocam çok güzel anlatmışsınız. Deneme yapayım localde teşekkürler.

     
  • 13 Haziran 2010, 13:22

    [...] betiÄŸinin daha detaylı anlatımını ve indirebileceÄŸiniz adresleri SEO Teknikleri‘ndeki Php ile SEO’lu Sistemler Yazmak ve Php SEO BetiÄŸi baÅŸlıklı makalemde bulabilirsiniz. Güle güle kullanmanız dileÄŸiyle [...]

     

Yorum Yapın


Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'forumse_db25921'@'localhost' (using password: YES) in /home/seotekni/public_html/wp-content/plugins/sonkonular.php on line 46

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/seotekni/public_html/wp-content/plugins/sonkonular.php on line 54
Berk Karahan: Forum URL scheme: forum-{$url} Thread URL scheme: {$url}.html Þeklinde ayarlama yapmýþsýnýz fakat bu hiçde saðlýklý deðil çünkü; forum-duyurulari.hmtl þeklinde bir konu...
dodiþ: teþekkürler iþime yaradý...
M. Yalçýn PARMAKSIZ: @Erdal Taþkesen: Eðitim notlarýnýn bir özetini web de yayýnlayacaðým, ancak eðitimde anlatýlanlarýn sadece küçük bir özeti olacak....
Erdal TAÞKESEN: Bu eðitimleri bir þekilde internet üzerinden takip etmemiz mümkün mü?...
 
licensewordpressrssalexaxhtmlcss
Google Site Map | SEO Teknikleri | Seo | Seo | Google

Powered by 2008 - 2009 SeoTeknikleri.com

Hosting Sponsoru Daha.net