ASP ile Dinamik Sitemap.xml Hazırlama

Yaptığım bütün sitelere koyduğum bu özellik ASP ile dinamik sitemap.xml oluşturmaya yarıyor.  Aslın biraz düşünce çok basit bir işlem ASP’nin ContentType’i XML formatına çevirmeniz yetiyor. Sonrasında veri tabanındaki  tablolara göre döngülerle listeleme yapmak. Bunu ben biraz geliştirdim ve bir xsl dosyasıyla xml dosyasına stil verdim. Örnek için bu adrese bakabilirsiniz: Stand Tasarım Şimdi diyeceksiniz ki bunun uzantısı .asp olması gerekmiyor muydu? Sitede SEO ya uygun URL biçimleri için 404 hatalarını kullanıyorum ve sitemap.xml yazıldığında sitemap.asp’yi çağırıyorum yani hangisini yazarsanız yazın aynı yer açılıyor.

sitemap.xml Dosyası ne işe yarıyor diyorsanız bir web sitesine ait site url haritasıdır. Amacı; sayfalarınızı Google’ın biran önce tanıyıp indekslemesidir. Bu sebeple bir web sitesi için kaçınılmaz bir ihtiyaçtır.

Şimdi gelelim kodlara:

[asp title=”sitemap.asp”]
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="css/sitemap.xsl"?>
<%
Response.Buffer = True
Response.ContentType = "text/xml"
%>
<!–#include file="includes/ayarlar.asp"–>
<!–#include file="includes/baglanti.asp"–>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<%
Private Function isoDate(dtmDate)

Dim strYear
Dim strMonth
Dim strDay
Dim strHour
Dim strMinute
Dim strSecound

strYear = Year(dtmDate)
strMonth = Month(dtmDate)
strDay = Day(dtmDate)

If strMonth < 10 then strMonth = "0" & strMonth
If strDay < 10 then strDay = "0" & strDay

isoDate = strYear & "-" & strMonth & "-" & strDay
End Function

Set rsFatih = Server.CreateObject("Adodb.Recordset")

‘//////////////////// — Ürün Kategorileri — \\\\\\\\\\\\\\\\\\\\
rsFatih.Open "SELECT * FROM tblUrunKategori WHERE goster = 1 order by KategoriID DESC", adoCon, 1, 3

Do While Not rsFatih.Eof

Response.Write (vbCrLf & " <url>"& _
vbCrLf & " <loc>" & strSiteAdresi & SEOLink("urunkat", rsFatih("SEO")) & "</loc>" &_
vbCrLf & " <changefreq>weekly</changefreq>"&_
vbCrLf & " <priority>0.8</priority>"&_
vbCrLf & " <lastmod>" & isoDate(Now()-2) & "</lastmod>"&_
vbCrLf & " </url>")

rsFatih.Movenext
Loop
rsFatih.Close

‘//////////////////// — Ürünler — \\\\\\\\\\\\\\\\\\\\
rsFatih.Open "SELECT * FROM tblUrunler WHERE durum = 1 AND Onay = 1 order by tarih DESC", adoCon, 1, 3

Do While Not rsFatih.Eof

Response.Write (vbCrLf & " <url>"&_
vbCrLf & " <loc>" & strSiteAdresi & SEOLink("urun", rsFatih("SEO")) & "</loc>"&_
vbCrLf & " <lastmod>" & isoDate(rsFatih("tarih")) &"</lastmod>"&_
vbCrLf & " <changefreq>weekly</changefreq>"&_
vbCrLf & " <priority>0.8</priority>"&_
vbCrLf & " </url>")

rsFatih.Movenext
Loop
rsFatih.Close

‘//////////////////// — Sayfalar — \\\\\\\\\\\\\\\\\\\\
rsFatih.Open "SELECT * FROM tblSayfalar WHERE durum = 1 order by SayfaNo DESC", adoCon, 1, 3

Do While Not rsFatih.Eof

Response.Write (vbCrLf & " <url>"&_
vbCrLf & " <loc>" & strSiteAdresi & SEOLink("sayfa", rsFatih("SEO")) & "</loc>"&_
vbCrLf & " <lastmod>" & isoDate(rsFatih("tarih")) &"</lastmod>"&_
vbCrLf & " <changefreq>weekly</changefreq>"&_
vbCrLf & " <priority>0.8</priority>"&_
vbCrLf & " </url>")

rsFatih.Movenext
Loop
rsFatih.Close
Set rsFatih = Nothing
%>
<url>
<loc><%=strSiteURL%>iletisim-bilgileri</loc>
<lastmod><%=isoDate(NOW())%></lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
[/asp]

Gerekli yerleri değiştirdiğinizde sorunsuz çalışan ve dinamik bir sitemap dosyanız olmuş olur. Buradan sitemap.xsl dosyasıyla beraber indirebilirsiniz.

“ASP ile Dinamik Sitemap.xml Hazırlama” üzerine 5 yorum

    1. ayarlar.asp ile baglanti.asp yi sizin web sitenizdeki db ile bağlantı yapan dosyayı ve ayarlarınızın aldığı dosyayı include edeceksiniz. Yoksa direk siledebilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir