Карта на сайта

teroristd

Registered
Здравейте, прилагам цитат от идин сайт за да ме разберете:

За статични сайтове с малко на брой страници, може да се създаде ръчно с текстов редактор или като се използва уеб инструмент Sitemap generator. Например .............. При динамичните сайтове, които често се променят е необходимо написването на специален скрипт, който създава и променя автоматично XML файла при всяка промяна в съдържанието на сайта. При блогове като този може да се ползва Google sitemap generator плъгин, който не само създава XML файл, а може да уведомява търсещите машини за извършените промени. Това води до почти моментално индексиране на новата ти страница. След като файла е готов съобщи на търсачките за него, като във файла robots.txt напишеш...

Трябва ми нещо подобно но не за блог а за друг сайт. Мерси.
 
Аз си правя картата на сайта с PHP и Google си я приема много добре, а така най-добре можеш да контролираш кои страници да впишеш. Просто ни направи PHP страничка, която да извежда страниците на сайта ти! :wink:
 
Ако е статичен сайта няма проблеми но в него ще се добавят постоянно нови оферти, а други ще се трият демек всяка оферта е страница не става да се направи една карта а трябва да се обновява постоянно.
 
да поясня имам предвид ХМЛ карта за търсачките не такава за потребителите двете са различни.
 
teroristd каза:
да поясня имам предвид ХМЛ карта за търсачките не такава за потребителите двете са различни.
Ето пример! XML карта на сайта направена с PHP, така че винаги извежда всички страници, които има сайта, независимо от кога са. Няма нужда да пипам нищо повече от нея, а Google Webmaster Tools индексира всички страници и не показва никакви грешки или предупреждения. :)
 
Ctrl + U и само можеш да видиш XML частта. А PHP-то е просто една заявка съм БД и един while, за да изведа всичски резултати. :D
 
:) еми полетата са ми : Начало, Под наем , Продажби , Новини, Документи, Бележник

:Като в Проддажби примерно имам редове: ID, zaglavie , opisanie, pic-чета от 0 до 10 , но фактически важно е ИД-то мисля него го имам в всички таблици и по него си изкарвам офертите , които трябва да включа в хмл-а. Демек ако влезна на някоя оферта имам линк от вида http://localhost/SITE/oferta.php?id=6 ако нещо друго трябва кажи.
 
teroristd каза:
:) еми полетата са ми : Начало, Под наем , Продажби , Новини, Документи, Бележник

:Като в Проддажби примерно имам редове: ID, zaglavie , opisanie, pic-чета от 0 до 10 , но фактически важно е ИД-то мисля него го имам в всички таблици и по него си изкарвам офертите , които трябва да включа в хмл-а. Демек ако влезна на някоя оферта имам линк от вида http://localhost/SITE/oferta.php?id=6 ако нещо друго трябва кажи.

Ето една примерна карта на сайта, като имената на таблиците и колоните ти ще си ги заместиш с истинските.

<?php
// Връзка с БД
$link = mysql_connect('localhost', 'db_user', 'db_pass') or die ('Не мога да се свържа с БД!');
mysql_select_db('db_name', $link);

header('Content-type: text/xml', true);

echo "<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="път към файла със стиловете на картата/sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n";

// Тук можеш да зададеш някои страници, които няма да се променят динамично, като например началната страница, страницата за вход и регистрация и т.н.
echo "<url>
<loc>http://smetki.micobg.net/</loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>\n";

// Това е списък с таблиците в БД
$tables = array('Начало', 'Продажби', 'Новини');

foreach($tables as $table) {
$query = mysql_query("SELECT `id` FROM `".$table."`") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
echo "<url>\n";
// Не забравяй да смениш този адрес, когато качваш сайта!
echo "<loc>http://localhost/SITE/oferta.php?id=".$row['id']."</loc>\n";
echo "<changefreq>weekly</changefreq>\n";
echo "<priority>0.9</priority>\n";
echo "</url>\n";
}
}
</urlset>\n";

?>
Малко разяснение:
- changefreq показва колко често се актуализира състоянието в съответната страница. Не е задължително да го използваш.
- priority - приоритет на страницата. Т.е. определяш колко е важна тази страница със стойности от 0 до 1, като можеш да използваш и стотни, като например 0.55. Например, даваш приоритет на началната страница на сайта 1, на офертите 0.9 и т.н., както си прецениш.

Другата част е XSL файла:
Код:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" 
                xmlns:html="http://www.w3.org/TR/REC-html40"
                xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" version="1.0" encoding="utf-8" indent="yes"/>
	<xsl:template match="/">
		<html xmlns="http://www.w3.org/1999/xhtml">
			<head>
				<title>Сметки micobg.net | Проверка на сметки за ток, вода, парно, телефон, данъци, осигуровки...(Google sitemap)</title>
				<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
				<style type="text/css">

					body {
						font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana;
						font-size:13px;
					}
					
					#intro {
						background-color:#CFEBF7;
						border:1px #2580B2 solid;
						padding:5px 13px 5px 13px;
						margin:10px;
					}
					
					#intro p {
						line-height:	16.8667px;
					}
					
					td {
						font-size:11px;
					}
					
					th {
						text-align:left;
						padding-right:30px;
						font-size:11px;
					}
					
					tr.high {
						background-color:whitesmoke;
					}
					
					#footer {
						padding:2px;
						margin:10px;
						font-size:8pt;
						color:gray;
					}
					
					#footer a {
						color:gray;
					}
					
					a {
						color:black;
					}
				</style>
			</head>
			<body>
				<h1>Сметки micobg.net | Проверка на сметки за ток, вода, парно, телефон, данъци, осигуровки...(Google sitemap)</h1>
				<div id="intro">
					<p>
						Това е карта на сайта <a href="http://smetki.micobg.net" title="Сметки micobg.net | Проверка на сметки за ток, вода, парно, телефон, данъци, осигуровки...">Сметки micobg.net</a>, чиято цел е да улесни <a href="http://www.google.com" title="Google">Google</a> в индексирането на страниците от сайта.<br /></p>

				</div>
				<div id="content">
					<table cellpadding="5">
						<tr style="border-bottom:1px black solid;">
							<th>URL адрес</th>
							<th>Приоритет</th>
							<th>Честота на промяна</th>

							<th>Последна промяна</th>
						</tr>
						<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
						<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
						<xsl:for-each select="sitemap:urlset/sitemap:url">
							<tr>
								<xsl:if test="position() mod 2 != 1">
									<xsl:attribute  name="class">high</xsl:attribute>

								</xsl:if>
								<td>
									<xsl:variable name="itemURL">
										<xsl:value-of select="sitemap:loc"/>
									</xsl:variable>
									<a href="{$itemURL}">
										<xsl:value-of select="sitemap:loc"/>
									</a>
								</td>

								<td>
									<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
								</td>
								<td>
									<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
								</td>
								<td>
									<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
								</td>

							</tr>
						</xsl:for-each>
					</table>
				</div>
				<div id="footer"></div>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>
Тук мисля, че няма какво да обяснявам. Просто заместваш моя текст с твоя и можеш да си зададеш свой стил по желание. :wink:
 
нещо не ми се получава смених си нещата с моите и не ми дава грешки ами бял екран и още нещо сега осъзнах че имам 3 оферти http://localhost/SITE/prodajbi_oferta.php?id=6, http://localhost/SITE/podnaem_oferta.phpid=6,
http://localhost/SITE/na4alo_oferta.php?id=6

какво да правя. :(
 
Просто кажи какъв ти е в момента! Или ако можеш да я каиш някъде другаде, но трябва да качваш и БД.
 
Ето по този начин се получава не знам защо дали защото хмл е изкаран извън пхп или...

<?php

header( 'Content-Type: application/xml' );
$user = 'xxxxxx';
$pwd = 'xxxxxxxxxx';

mysql_connect( 'localhost', $user, $pwd ) or die( 'Cannot connect to database server' );
mysql_select_db( 'xxxxxxxxx' ) or die( 'Cannot open database' );



echo'<?xml version="1.0" encoding="UTF-8"?>' ;

?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">


<url>
<loc>http://localhost/SITE/index.php</loc>
</url>



<?php


$sql = "SELECT * FROM `na4alna_stranica`";
$result = mysql_query( $sql ) or die( mysql_error() );

while( $row = mysql_fetch_assoc($result) )

{
?>
<url>
<loc>http://localhost/SITE/index_oferta.php?id=<?php echo $row['id']; ?></loc>
</url>
<?php

}

?>


</urlset>
 

Back
Горе