Webmaster Tools a nasıl sitemap eklenir yada nasıl site doğrulaması yaptırılır bunları başka bir zaman yazmayı düşünüyorum. Şimdi gelelim asıl meselemize Asp ile otomatik bir sitemap hazırlamak istiyoruz dedik değil mi? Hadi o zaman yapalım şu işi :D
İlk olarak dikkat edilmesi gereken sitemap dosyalarının bir formatı olduğu. Bu format düzeninden ayrıntılı olarak bahsetmek istemiyorum ama kısaca başlıklar halinde bahsedebiliriz. Aslında sitemap dosyaları XML verilerinden başka bir şey değildir. Bu yüzden genelde sitemap dosyaları
<?xml version="1.0" encoding="UTF-8"?>
kodu ile başlarlar. Bu kodda zaten birşey yok tabi XML versiyonu ve kodlama için gereken Karakter Set dışında. Arkasından gelen kod ise
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
yukarıda yer alan tek satırlık kod. Bu satırın özelliği ise xml verisine ait şema bilgilerinin yer alması.Fakat bizi asıl ilgilendiren satırlar bundan sonraki satırlar. Yani sitemizde yer alan url lerin gösterileceği satırlar.
<url><loc><%=site%></loc><lastmod><%=mapdateformat(Now()) %></lastmod><changefreq>daily</changefreq> <priority>1.00</priority></url>
bu ilk url satırımız. burada da site değişkeni ilk sitemap dosyası içerisinde yer alan ilk url nin kendi site adresimiz olmasını sağlıyor. Bu değişkene kendi site adresinizi değer olarak atamalısınız. mapdateformat fonksiyonu ise sitemap için uygun olan tarih formatını oluşturmakta. Diğer verileri değişmez olarak bırakıyorum yani her url için değişme frekansı ve öncelik değerleri sabit olacak siz bunların yerine değişken değerler kullanabilirsiniz. Tamamı ile sizin tercihinize kalan özellikler. Aşağıya ise sitemap dosyamızın tam kodunu yerleştiriyorum. Aşağıda veritabanından verilerimizi çekerek nasıl otomatik olarak sitemap hazırlayabileceğimizi gösteren kodların tamamı yer almakta.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>Yukarıdaki tarih formatı saniye mertebesine kadar geniş olduğu için sizin veritabanınızdaki formatın da bu şekilde olması gerekmektedir. Fakat tarih formatını sizin veritabanınızda kullandığınız tarih formatına uyarladığınız taktirde sorun ortadan kalkmış olacaktır.
<%
rem Bu Script Uğur Özşahin Tarafından 05 Ekim 2007 Tarihinde Yazılmıştır.
rem Sayfa kodumuz UTF-8
session.codepage="65001"
rem Sitemizin adresi
site = "http://www.siteniz.com/"
rem Veritabanımızın yolu
db = "/veritabanı_klasor/veritabanı.mdb"
rem veritabanı bağlantısı yapılıyor
Set condb = Server.createObject("ADODB.Connection")
condb.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
rem Url de yer almaması gereken karakterleri ayıklıyoruz.
Function replink(metin)
metin = Replace(metin,"/","")
metin = Replace(metin,"\","")
metin = Replace(metin,","," ")
metin = Replace(metin,"."," ")
metin = Replace(metin,"!"," ")
metin = Replace(metin,"’"," ")
metin = Replace(metin,"`"," ")
metin = Replace(metin,"%"," ")
metin = Replace(metin,"!"," ")
metin = Replace(metin,":"," ")
metin = Replace(metin,"<"," ")
metin = Replace(metin,">"," ")
metin = Replace(metin,"’","")
metin = Replace(metin," ","-")
metin = Replace(metin,"____","-")
metin = Replace(metin,"___","-")
metin = Replace(metin,"__","-")
metin = Replace(metin,"-----","-")
metin = Replace(metin,"----","-")
metin = Replace(metin,"---","-")
metin = Replace(metin,"--","-")
metin = Replace(metin,"[","")
metin = Replace(metin,"]","")
metin = Replace(metin,"{","")
metin = Replace(metin,"}","")
metin = Replace(metin,"(","")
metin = Replace(metin,")","")
metin = Replace(metin,"ş","s")
metin = Replace(metin,"Ş","S")
metin = Replace(metin,"ğ","g")
metin = Replace(metin,"Ğ","G")
metin = Replace(metin,"İ","i")
metin = Replace(metin,"ı","i")
metin = Replace(metin,"ç","c")
metin = Replace(metin,"Ç","C")
metin = Replace(metin,"ö","o")
metin = Replace(metin,"Ö","O")
metin = Replace(metin,"ü","u")
metin = Replace(metin,"Ü","U")
replink = metin
End Function
rem Sitemap XML verisi için gereken tarih formatı
Function mapdateformat(datex)
Dim GMT
GMT = "+02:00"
mapdateformat = DatePart("yyyy",datex) & "-" & _
Sifirekle(DatePart("m", datex)) & "-" & _
Sifirekle(DatePart("d", datex)) & "T" & _
Sifirekle(DatePart("h", datex)) & ":" & _
Sifirekle(DatePart("n", datex)) & ":" & _
Sifirekle(DatePart("s",datex)) & GMT
rem Format: 2007-10-05T00:04:09+02:00
End Function
rem Formata uygunluk için tek karakterden oluşan sayıların soluna 0 ekliyoruz
Function Sifirekle(metin)
If Len(metin) = 1 Then
Sifirekle = "0" & metin
Else
Sifirekle = metin
End If
End Function
Response.Buffer = True
rem Dosyamızın içerik tipi
Response.ContentType = "text/xml"
%><?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<%
Response.Write "<url><loc>" & site & "</loc><lastmod>" & mapdateformat(Now()) & "</lastmod><changefreq>daily</changefreq><priority>1.00</priority>"
rem tbl_kategori kayıtları ile kategori linklerimizi oluşturuyoruz
Set con = Server.createObject("Adodb.Recordset")
sql = "select id,veri,tarih,durum From tbl_kategori where durum = True Order By tarih Asc"
con.Open sql,condb,1, 3
i = 0
Do While i =< con.RecordCount And Not con.eof
Response.Write "<url><loc>" & site & "kategori/" & con("id") & "-" & replink(con("veri")) & "/" & "</loc><lastmod>" & mapdateformat(con("tarih")) & "</lastmod><changefreq>daily</changefreq><priority>0.50</priority></url>" & Chr(13)
i = i + 1
con.MoveNext
Loop
con.Close
Set con = Nothing
rem tbl_baslik kayıtları ile herbir başlığımız için url bilgilerini otomatik olarak çekiyoruz
Set con = Server.createObject("ADODB.Recordset")
sql = "select id,veri,durum,tarih from tbl_baslik where durum = True order by tarih Asc"
con.Open sql,condb,1,3
i = 0
Do While i =< con.recordcount And Not con.Eof
Response.Write "<url><loc>" & site & "baslik/" & con("id") & "-" & replink(con("veri")) & "/" & "</loc><lastmod>" & mapdateformat(con("tarih")) & "</lastmod><changefreq>daily</changefreq><priority>0.50</priority></url>" & Chr(13)
i = i + 1
con.MoveNext
Loop
con.Close
Set con = Nothing
%></urlset>
Son olarak yukarıdaki kodları tam olarak kullanabilmek için kendinize göre düzenlemeniz gerekmektedir. Bu kodlardaki veritabanı bağlantısı ve veritabanındaki alanlar sadece tahminidir. Bu alanları kendi veritabanınızdaki alanlara göre düzenlemelisiniz. Ayrıca url yi de kendi sitenizde kullandığınız url formatına göre düzenlemeniz gerekebilir. Kendi sitesine entegre etmek isteyen fakat sorunlarla karşılaşan arkadaşlara yardımcı olabilirim bunun için benimle iletişim bölümünden irtibata geçmeniz yeterli olacaktır.
28
2008
www.e-forumbahane.com
Geniş içeriklli paylaşım eğlence platformu
12
2008
Merhaba siteme entegre etme konusunda yardım almak için sizi rahatsız ediyorum yardım ederseniz sevinirim.
çıkan hata
XML sayfası görüntülenemiyor
XML girişi XSL stil sayfası kullanılarak görüntülenemez. Lütfen hatayı düzeltin ve Yinele düğmesini tıklatın veya daha sonra yeniden deneyin.
---------------------------
Düz dize bekleniyordu, ancak tırnak açma karakteri bulunamadı. ’http://www.bilgice.com/sitemap.asp’ kaynağı işlenirken hata...
böyle bir hata veriyor sorun ne olabilir?
12
2008
@hüseyin yaman bey,
İlk sorun için söyleyebileceğim, xml kodunuzda yer alan xml-stylesheet etiketini kaldırarak denemeniz olacaktır. Ancak eğer benim yazmış olduğum kodu kullanıyor iseniz, zaten böyle bir sorun yaşamıyor olmalıydınız. Ayrıca ikinci sorunun çözümü ile de birinci sorunun çözülme ihtimali söz konusu. Bu yüzden önce ikinci sorunun çözümüne odaklanmanız yararlı olacaktır.
İkinci sorun için ise sorun muhtemelen hatalı tırnak işareti kullanımı ile ilgili. Tırnak işaretlerini tekrar kontrol etmenizi öneriyorum.
14
2008
www.bedavasitemolsun.com
Paylaşım için teşekkürler temelde önemli bilgieler..
30
2008
Güzel bir paylaşım olmuş. Güncel bir Sitemap bir site için çok önemlidir. Bunu kod ile yaptırmak bence çok mantıklı...
01
2008
Guzel PayLasım emeqine saqLık.... Www.SosyalFM.Com