google sitemap
google sitemap
grad bei heise aufgetaucht.
Hierbei handelt es sich um ne Sitemap (XML) die man wie eine robots.txt (nur ein bischen komplizierter)
ins root-dir haut und google findet sofort alle wichtigen seiten ohne irgendwie im linktschungel zu versinken.
Find ich imho ne super Idee.
http://www.heise.de/newsticker/meldung/60254
Hierbei handelt es sich um ne Sitemap (XML) die man wie eine robots.txt (nur ein bischen komplizierter)
ins root-dir haut und google findet sofort alle wichtigen seiten ohne irgendwie im linktschungel zu versinken.
Find ich imho ne super Idee.
http://www.heise.de/newsticker/meldung/60254
Zuletzt geändert von lazka am Fr 03.Jun, 2005 18:17, insgesamt 1-mal geändert.
Wenn das System klappt, könnte es sehr Interessant sein.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
wens interessiert: Titus (und ein bischen ich) hat da ein Script gebaut welches die Sitemap anhand der Datenbankinfos erstellt : http://www.phpbb2.de/viewtopic.php?p=154967#154967
(btw. hab jetzt ein Avatar )
(btw. hab jetzt ein Avatar )
Zuletzt geändert von lazka am So 05.Jun, 2005 22:22, insgesamt 1-mal geändert.
[quote="lazka - So 05.Jun, 2005 22:20";p="34515"]wens interessiert: Titus (und ein bischen ich) hat da ein Script gebaut welches die Sitemap anhand der Datenbankinfos erstellt : http://www.phpbb2.de/viewtopic.php?p=154967#154967
(btw. hab jetzt ein Avatar )[/quote]
Hi,
also damit ich als Laie das richtig bzw. halbwegs verstehe. Copy & Paste in z.B. sitemap.php, rauf auf das Server root, als admin mit Aufruf von www.meinforum.de/phpBB2/sitemap.php starten? Und dann funktioniert das und es wird eine entsprechende *.gz datei erstellt?
Thx 4 Help :-)
(btw. hab jetzt ein Avatar )[/quote]
Hi,
also damit ich als Laie das richtig bzw. halbwegs verstehe. Copy & Paste in z.B. sitemap.php, rauf auf das Server root, als admin mit Aufruf von www.meinforum.de/phpBB2/sitemap.php starten? Und dann funktioniert das und es wird eine entsprechende *.gz datei erstellt?
Thx 4 Help :-)
Zuletzt geändert von ToXic am Mo 06.Jun, 2005 08:34, insgesamt 1-mal geändert.
[quote="lazka - Mo 06.Jun, 2005 16:03";p="34586"]jup. oder du haust das sessionmanagement, include, message zeugs raus und includest es in deine z.B.: Portal.php[/quote]
Hi,
hochladen und aufrufen sowie ausführen funktioniert, jedoch wird keine sitemap.xml bzw. sitemap.xml.gz generiert. Scheint wohl mit der Permission zusammenzuhängen? Ich poste mal ne Meldung:
Aber wie ich nun das Script zum laufen bekomme, habe ich leider immer noch nicht verstanden. Ob du mir/uns Laie/n noch etwas unterstützen könntest? So mit ner kurzen Einbauanleitung? *liebfrag* Thx :-)
Hi,
hochladen und aufrufen sowie ausführen funktioniert, jedoch wird keine sitemap.xml bzw. sitemap.xml.gz generiert. Scheint wohl mit der Permission zusammenzuhängen? Ich poste mal ne Meldung:
Wenn ich das ganze halbwegs richtig verstehe werden dann aus der Datenbank sämtliche Topics in eine *.xml Datei geschrieben. Diese sende ich dann an Google, und anhand der übermittelten Informationen indexiert Google mein Board in deren Index? Falls dem so ist und der Service weiterhin seitens Google bestehen bleibt, könnte ich den SUMaMod aus meinem Board ausbauen. Der läuft nämlich bei mir nicht richtig ... User können keine Lesezeichen/Bookmarks setzen. Und das nervt irgendwie.Warning: gzopen(./sitemap.xml): failed to open stream: Permission denied in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 99
Warning: gzwrite(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 100
Warning: gzclose(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 101
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 791
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 793
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 794
Aber wie ich nun das Script zum laufen bekomme, habe ich leider immer noch nicht verstanden. Ob du mir/uns Laie/n noch etwas unterstützen könntest? So mit ner kurzen Einbauanleitung? *liebfrag* Thx :-)
probier mal ne leere sitemap.xml.gz Datei zu machen und der dann Chmod 0644 bzw. 666 zu geben.
oder schreib mal statt dem
aber was das Header-zeugs betrifft
oder schreib mal statt dem
Code: Alles auswählen
$fileName = gzopen($cache_data_file, "w9");
gzwrite($fileName, $sitemap);
gzclose($fileName);
Code: Alles auswählen
if($fileName = gzopen($cache_data_file, "w9"))
{
gzwrite($fileName, $sitemap);
gzclose($fileName);
@chmod($cache_data_file, 0666);
}
erstell bei googöe nen Account (wenn du bei Gmail bist gehts auch).
dann zur Sitemap-Seite: https://www.google.com/webmasters/sitemaps/login
und dort den Link hinzufügen.
dann zur Sitemap-Seite: https://www.google.com/webmasters/sitemaps/login
und dort den Link hinzufügen.
Zuerst einmal Danke für die freundliche Unterstützung. Aber es will bei mir nicht laufen. Es wird beim Aufruf des Scrits keine *.xml Datei angelegt. Auch das Aufspielen einer sitemap.xml.gz (CHMOD 644 bzw. 666) ins Root brachte kein Ergebnis. Ich habe dann einmal eine leere sitemap.xml hochgeladen und das Script erneut ausführen lassen. Diesmal "ohne" Fehlermeldungen und dem Status "Noch Aktuell". Ich kann mir nur denken das mein Provider all-inkl.com das Schreiben auf dem Server nicht zulässt.
Für weitere Tipps bin ich natürlich dankbar :-)
Für weitere Tipps bin ich natürlich dankbar :-)
kommentiere mal folgendes aus
damit umgehst du die "Datei aktuell?"-Prüfung
ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)
Code: Alles auswählen
{
$valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false;
} else
{
$valid = false;
}
if ($valid )
{
message_die(GENERAL_MESSAGE, 'noch aktuell');
exit;
} else
ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)
[quote="Titus - Di 07.Jun, 2005 11:41";p="34696"]kommentiere mal folgendes aus
damit umgehst du die "Datei aktuell?"-Prüfung
ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)[/quote]
Hi,
danke dir für den Tipp. Habe ich gemacht und ausgeführt ... es kommen keine Fehler und es wird Fertig angezeigt (innerhalb von 1-2 Sekunden), aber leider wird kein File auf dem Server geschrieben. Ich hänge den aktuellen Code mal an, vielleicht kannst du bei gelegenheit einmal drüberschauen? Thx :-)
EDIT:
Wohl ein wenig zuviel ausgeklammert meinerseits ... *schäm* :-( Aber jetzt hat es funktioniert .... ich habe eine sitemap.xml.gz auf dem Root liegen. habe die mal geöffnet und es sind knappe 2500 Zeilen Code drinnen. Werde das File mal zu Google hochladen und sehen was dann passiert :-)
damit umgehst du die "Datei aktuell?"-Prüfung
ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)[/quote]
Hi,
danke dir für den Tipp. Habe ich gemacht und ausgeführt ... es kommen keine Fehler und es wird Fertig angezeigt (innerhalb von 1-2 Sekunden), aber leider wird kein File auf dem Server geschrieben. Ich hänge den aktuellen Code mal an, vielleicht kannst du bei gelegenheit einmal drüberschauen? Thx :-)
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ($userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, 'nur für Admins');
exit;
}
// $cache_data_file = $phpbb_root_path."sitemap.xml";
$cache_data_file = $phpbb_root_path."sitemap.xml.gz";
if (@is_file($cache_data_file))
// {
// $valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false;
// } else
// {
// $valid = false;
// }
// if ($valid )
// {
// message_die(GENERAL_MESSAGE, 'noch aktuell');
// exit;
// } else
{
// erzeugen Daten
$sitemap = "<?xml version="1.0" encoding="UTF-8"?>\n";
$sitemap .= "<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"\n";
$sitemap .= "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n";
$sitemap .= "xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84\n";
$sitemap .= "http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">\n";
$sql = "SELECT MAX(topic_views) as maxviews FROM " . TOPICS_TABLE;
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);
$row = $db->sql_fetchrow($result);
$maxviews = $row['maxviews'];
$sql = "SELECT t.topic_id, t.topic_time, t.topic_views, t.topic_replies, p.post_time
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . POSTS_TABLE . " AS p
WHERE f.forum_id = t.forum_id
AND f.auth_view = " . AUTH_ALL . "
AND p.post_id = t.topic_last_post_id
ORDER BY t.topic_last_post_id DESC
LIMIT 50000";
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);
while ($row = $db->sql_fetchrow($result))
{
// Ausrechnen der avg. Aktualisierungszeit
//"always", "hourly", "daily", "weekly", "monthly", ("yearly" and "never")
$avgtime = ((time()-$row['topic_time'])/($row['topic_replies']+1))/3600;
if ($avgtime < 1) $changefreq = "always";
else if ($avgtime < 24) $changefreq = "hourly";
else if ($avgtime < 168) $changefreq = "daily";
else if ($avgtime < 5040) $changefreq = "weekly";
else $changefreq = "monthly";
//Priorität bezogen auf die Views (quadratisch)
$priority = round( sqrt($row['topic_views']/$maxviews), 1);
if ($priority >= 1) $priority = "1.0";
else if ($priority <= 0) $priority = "0.0";
//Zeit des letzten Beitrags
$iso8601_time = date('Y-m-d\TH:i:s', $row['post_time']) . substr(chunk_split(date('O',$row['post_time']), 3, ':'),0,6);
// Ausgabe der einzelnen Seiten
for($post=0; $post<=$row['topic_replies']; $post+=$board_config['posts_per_page'])
{
$add = ($post>0) ? "&start=".$post : "";
$sitemap .= "<url>\n";
$sitemap .= "<loc>http://".$board_config['server_name'].$board_config['script_path']."viewtopic.php?t=".$row['topic_id'].$add."</loc>\n";
$sitemap .= "<lastmod>".$iso8601_time."</lastmod>\n";
$sitemap .= "<changefreq>".$changefreq."</changefreq>\n";
$sitemap .= "<priority>".$priority."</priority>\n";
$sitemap .= "</url>\n";
}
}
$sitemap .= "</urlset>";
// Schreibe File
/* $fileName = fopen ($cache_data_file, 'w');
fputs ($fileName, $sitemap);
fclose ($fileName); */
$fileName = gzopen($cache_data_file, "w9");
gzwrite($fileName, $sitemap);
gzclose($fileName);
if($fileName = gzopen($cache_data_file, "w9"))
{
gzwrite($fileName, $sitemap);
gzclose($fileName);
@chmod($cache_data_file, 0666);
}
}
message_die(GENERAL_MESSAGE, 'Fertig');
?>
Wohl ein wenig zuviel ausgeklammert meinerseits ... *schäm* :-( Aber jetzt hat es funktioniert .... ich habe eine sitemap.xml.gz auf dem Root liegen. habe die mal geöffnet und es sind knappe 2500 Zeilen Code drinnen. Werde das File mal zu Google hochladen und sehen was dann passiert :-)
Zuletzt geändert von ToXic am Di 07.Jun, 2005 12:35, insgesamt 1-mal geändert.
Kann mir keiner helfen?
Hat keiner eine Idee,warum in der sitemap.xml.gz nichts drin steht.
Er meldet nach dem Aufruf der /sitemap.php -fertig,aber nach entpacken ist in dem Verzeichnis nichts drin.
Kann mir keiner helfen?
Er meldet nach dem Aufruf der /sitemap.php -fertig,aber nach entpacken ist in dem Verzeichnis nichts drin.
Kann mir keiner helfen?
Zuletzt geändert von hemman am Do 11.Aug, 2005 10:13, insgesamt 1-mal geändert.
CHMOD des Verzeichnisses auf 777 gesetzt???
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
Nimm mal zum Test meine ...
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ($userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, 'nur für Admins');
exit;
}
//$cache_data_file = $phpbb_root_path."sitemap.xml";
$cache_data_file = $phpbb_root_path."sitemap.xml.gz";
if (@is_file($cache_data_file))
{
$valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false;
} else
{
$valid = false;
}
if ($valid )
{
message_die(GENERAL_MESSAGE, 'noch aktuell');
exit;
} else
{
// erzeugen Daten
$sitemap = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$sitemap .= "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\"\n";
$sitemap .= "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
$sitemap .= "xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84\n";
$sitemap .= "http://www.google.com/schemas/sitemap/0 ... p.xsd\">\n";
$sql = "SELECT MAX(topic_views) as maxviews FROM " . TOPICS_TABLE;
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);
$row = $db->sql_fetchrow($result);
$maxviews = $row['maxviews'];
$sql = "SELECT t.topic_id, t.topic_time, t.topic_views, t.topic_replies, p.post_time
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . POSTS_TABLE . " AS p
WHERE f.forum_id = t.forum_id
AND f.auth_view = " . AUTH_ALL . "
AND p.post_id = t.topic_last_post_id
ORDER BY t.topic_last_post_id DESC
LIMIT 50000";
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);
while ($row = $db->sql_fetchrow($result))
{
// Ausrechnen der avg. Aktualisierungszeit
//"always", "hourly", "daily", "weekly", "monthly", ("yearly" and "never")
$avgtime = ((time()-$row['topic_time'])/($row['topic_replies']+1))/3600;
if ($avgtime < 1) $changefreq = "always";
else if ($avgtime < 24) $changefreq = "hourly";
else if ($avgtime < 168) $changefreq = "daily";
else if ($avgtime < 5040) $changefreq = "weekly";
else $changefreq = "monthly";
//Priorität bezogen auf die Views (quadratisch)
$priority = round( sqrt($row['topic_views']/$maxviews), 1);
if ($priority >= 1) $priority = "1.0";
else if ($priority <= 0) $priority = "0.0";
//Zeit des letzten Beitrags
$iso8601_time = date('Y-m-d\TH:i:s', $row['post_time']) . substr(chunk_split(date('O',$row['post_time']), 3, ':'),0,6);
// Ausgabe der einzelnen Seiten
for($post=0; $post<=$row['topic_replies']; $post+=$board_config['posts_per_page'])
{
$add = ($post>0) ? "&start=".$post : "";
$sitemap .= "<url>\n";
$sitemap .= "<loc>http://".$board_config['server_name'].$board_config['script_path']."viewtopic.php?t=".$row['topic_id'].$add."</loc>\n";
$sitemap .= "<lastmod>".$iso8601_time."</lastmod>\n";
$sitemap .= "<changefreq>".$changefreq."</changefreq>\n";
$sitemap .= "<priority>".$priority."</priority>\n";
$sitemap .= "</url>\n";
}
}
$sitemap .= "</urlset>";
// Schreibe File
/* $fileName = fopen ($cache_data_file, 'w');
fputs ($fileName, $sitemap);
fclose ($fileName); */
$fileName = gzopen($cache_data_file, "w9");
gzwrite($fileName, $sitemap);
gzclose($fileName);
}
message_die(GENERAL_MESSAGE, 'Fertig');
?>