İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

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

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
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
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
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
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
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
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
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
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
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
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
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
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
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
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
@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
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
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
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst