Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Db'den veri çekerek sitemap nasıl hazırlanır?

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
merhabalar oyun siteme db'den veri çekerek sitemap yapacam fakat bir türlü kaynak bulamadım ceviz google iyinet r10 biraz araştırdım hep program tarzı şeyler var.

acaba db'den veri çekerek sitemap nasıl oluşturabilirim bu konuda yardım ederseniz sevinirim teşekkürler
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
Seo dosyası:
PHP:
<?php

function make_url_friendly($url)
{
    $url = trim($url);
    $url = strtolower($url);

    $find = array('<b>', '</b>');
    $url = str_replace ($find, '', $url);

    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);

    $find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
    $url = str_replace ($find, '-', $url);

    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
    $url = str_replace ($find, 'e', $url);

    $find = array('í', 'ı', 'ì', 'î', 'ï', 'I', 'İ', 'Í', 'Ì', 'Î', 'Ï');
    $url = str_replace ($find, 'i', $url);

    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
    $url = str_replace ($find, 'o', $url);

    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
    $url = str_replace ($find, 'a', $url);

    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
    $url = str_replace ($find, 'u', $url);

    $find = array('ç', 'Ç');
    $url = str_replace ($find, 'c', $url);

    $find = array('ş', 'Ş');
    $url = str_replace ($find, 's', $url);

    $find = array('ğ', 'Ğ');
    $url = str_replace ($find, 'g', $url);

    $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');

    $repl = array('', '-', '');

    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);

    return $url;
}

?>

sitemap.php dosyası bunu sitemap.xml olarak htaccess'den ayarlamanız gerekli.

PHP:
<?
include "ayar.inc.php";
include "seo.inc.php";
?>
<?
$xml_ciktisi="<?xml version=\"1.0\" encoding=\"windows-1254\"?><urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\">\n";
$isimx=mysql_query("SELECT * FROM icerik where onay='e' ORDER BY id DESC");;
while($link = mysql_fetch_array($isimx))
{
$url = "http://www.site.com/".ucwords(strtolower(make_url_friendly($link['baslik'])))."";
$tarih = date("Y-m-d");
$xml_ciktisi .= "<url>
                          <loc>$url</loc>
                          <lastmod>$tarih</lastmod>
							  <changefreq>daily</changefreq>
							  <priority>0.5</priority>
							  </url>\n";
};

$xml_ciktisi .= "</urlset>\n";
echo $xml_ciktisi;		
?>

htaccess içine de
Options +FollowSymLinks
RewriteEngine on
rewriteRule ^sitemap.xml$ sitemap.php

eklemeniz yeterli olacaktır. Yukarıdaki işlem ile güncel olarak xml oluşmaktadır. Ama yok ben xml dosyası olarak kaydetsin istiyorsanız, sitemap.php dosyasını aşağıdaki gibi kullanabilirsiniz.

PHP:
<?
include "ayar.inc.php";
include "seo.inc.php";
?>
<?
$xml_ciktisi="<?xml version=\"1.0\" encoding=\"windows-1254\"?><urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\">\n";
$isimx=mysql_query("SELECT * FROM icerik where onay='e' ORDER BY id DESC");;
while($link = mysql_fetch_array($isimx))
{
$url = "http://www.site.com/".ucwords(strtolower(make_url_friendly($link['baslik'])))."";
$tarih = date("Y-m-d");
$xml_ciktisi .= "<url>
                          <loc>$url</loc>
                          <lastmod>$tarih</lastmod>
							  <changefreq>daily</changefreq>
							  <priority>0.5</priority>
							  </url>\n";
};

$xml_ciktisi .= "</urlset>\n";
	
?>

<?

$raw = $xml_ciktisi;
$handle = fopen("sitemap.xml", "w");
fwrite($handle, $raw);

?>
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
ilginç için teşekkürler sitemap dosyasının işleyişi hakkında bir bilgim yoktu kodlama olarak pek bir şeyi yokmuş yardımın için tekrar teşekkürler
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
verdiğin kodların mantığına göre yaptım ama bir xml gibi listeleme yapmıyor

http://www.sihirliperi.net/sitemap.php adrese bakarsanız bu şekilde listelemekte.

PHP:
<?php
include ("ayar.php");

function cevir($sihirliperi) {
$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
$eng = array('s','S','i','I','g','G','u','U','o','O','C','c');
$sihirliperi = str_replace($tr,$eng,$sihirliperi);
$sihirliperi = eregi_replace('[^0-9A-Za-z]',"_",$sihirliperi);
$sihirliperi = str_replace('__','_',$sihirliperi);
return $sihirliperi;
}

echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
echo "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\">";

$sorgu = mysql_query("SELECT id,konu FROM makale WHERE yayin='YAYINDA' AND onay='onaylandi'");
while ($cek = mysql_fetch_array($sorgu)) {
$id = $cek[id];
$konu = $cek[konu];
$seomakale = cevir($konu);
echo "\n<url>\n<loc>http://www.sihirliperi.net/$cek[id]-$seomakale.htm</loc>\n<changefreq>daily</changefreq>\n<priority>0.5</priority>\n</url>";
}

echo "\n</urlset>";
?>

kodlamada bir yerde hata mı yaptım acaba?
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
Verdiğin sayfada

<div style="position: absolute; width: 100px; height: 100px; z-index: 1; visibility:hidden" id="katman1">
<script type="text/javascript">
<!--
var FCS_Account="sihirliperi";
var FCS_UID="19116";
var FCS_Server="http://www.sayyyac.com";
var FCS_Offset="2";
var FCS_Sec="477b5578e8f07d0832b12537d1721618";
// -->
</script>
<script type="text/javascript" src="http://www.sayyac.com/inlive.php?uid=19116&offset=2&">
</script></div>

olarak fazladan kodlar var. Bunları sil, düzelmesi lazım...
 

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
Yagmayok,
Kod:
                              <changefreq>daily</changefreq>
                              <priority>0.5</priority>

kısımları sabit tanımlanmış. Bu şekilde hazırlanan sitemapler sitenizin zarar görmesine neden olabilir. Günlük güncellenmeyen sayfalarınızın Priority değerini düşük tutun ve günlük ziyaret etmemesini sağlayın(daily yerine weekly yazın). Günlük ziyaret edilmesi gereken sayfalarınız kategorileriniz veya index sayfanız olabilir.
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
bilgi için teşekkürler Loi

<priority>0.5</priority> bu şekilde kalsın mı?

yagmayok gözümden kaçmış teşekkürler
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
@Loi uyarı için teşekkür ederim.

Yaklaşık olarak 1 senedir sitelerimde bu şekilde kullanmaktayım. Hit bakımından vey google'da index yerleri bakımından bir zararı dikkatimi çekmedi.

Acaba bahsettiğiniz zarar ne şekilde gerçekleşebilir veya bu dakkadan sonra dediğiniz şekilde düzenleme yaparsam ne gibi faydaları olabilir ?

Şöyle bir durumu da dile getirmeyilim galiba. Sitemap'da yer alan sayfalarda mutlaka yeni eklenen içerikler cinsinden içerik mutlaka bulunmaktadır ve sitelerime de sürekli içerik eklenmektedir. Yani siteye her içerik eklendiğinde bir şekilde alt sayfalarda da değişikler olmakta.
 

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
Daha önce ben bir sitemde böyle bir sorun yaşadım ve arama sonuçlarından silindim. Daha sonra sitemapde düzenlemeler yapıp webmaster tools dan tekrar değerlendirme istedim. Arama motorlarından silinişim sitemap i hazirladiktan sonraki dönemlere denk geldiği için araştırma yapmak durumunda kaldım.

Bu linkte google in uyari gonderdigi bazi webmasterlarda bulunuyor: http://forums.digitalpoint.com/showthread.php?t=1087286
 

cs_spawn07

0
Onaylı Üye
Üye
Katılım
7 Haziran 2008
Mesajlar
59
Açılan Konu
4
Tepki puanı
0
Konum
Win/System32
Tşk ediyorum herkese.. Sayenizde azda oLsa günceL sitemap hakkında bilgim olduç
 
Üst