ich habe das Sitemap-Script vin DIATOM ein wenig angepasst auf meine Bedürfnisse. Erstmal vielen Dank für die gute Basis!
Da ich sehr (seeehr) viele Artikel im Shop habe, und Google die Sitemaps auf 50.000 Urls, bzw. 10Mb (unkomprimiert), beschränkt, muss ich über einen Sitemap-Index gehen.
Das sitemap-script erstellt mir nun alle Dateien, folgende Features habe ich dazu gebaut:
ein Produkte-Url-Limit pro Sitemap
gzip-Komprimierung für die Maps
gegen schwache maxmemory-Einstellungen auf dem Server ruft sich das Script nach jeder sitemap erneut auf (ähnlich wie der mysqldumper)
das ganze als Shellscript, damit man einen Cronjob aufsetzen kann und nicht ans webroot-Verzeichnis gebunden ist dabei (eine Kopier-Routine fehlt allerdings noch)
Natürlich ist das Script beliebig erweiterbar, jeder hat ja so seine Servereinstellungen. Das Script im Anhang des Postings.
Ungültiges Datum
Es wurde ein ungültiges Datum gefunden. Berichtigen Sie bitte das Datum bzw. dessen Formatierung, bevor Sie Ihre Daten erneut einreichen.
und ich mußte:
$lastmod = $sql_row[‘oxtimestamp’];
if (“0000-00-00 00:00:00” == $lastmod)
{
$lastmod = date(“Y-m-d”) . ‘T’ . date(“h:i:s”) . ‘+00:00’;
}
$list[] = array(
Gibt es bei dem Script eigentlich irgend eine Möglichkeit / Anpassung, dass nur die Links der Hauptkategorie ausgegeben werden? Im Moment scheint er immer nur den ersten Eintrag der oxseo Tabelle zu nehmen.
Wenn ich die Datei von nullzehn nehme, bekomme ich bei google folgenden Fehler:
Fehler 1
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein.
Details:
http://#!%20/usr/bin/php%20-q
Problem ermittelt am: 05.05.2010
Fehler 2
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein.
Details:
http://<?php
Problem ermittelt am: 05.05.2010
Fehler 3
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein.
Details:
http:///**
Problem ermittelt am: 05.05.2010
Die Datenbankdaten haben ich alle eingetragen.
Am Anfang des Dokument steht Folgendes:
Also wenn ich den Code am Anfang lösche und es als .php einreiche nimmt google es nicht. Wenn ich eine .xml Datei draus mache, bekomme ich folgende Fehlermeldungen:
Fehler 282
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein.
Details:
http://'. $val['loc'] .'
Übergeordnetes Tag: url
Tag: loc
Problem ermittelt am: 05.05.2010
Fehler 299
Fehlerhafter Aufbau
Wir konnten Ihre XML-Sitemap nicht lesen. Sie dürfte einen Eintrag enthalten, den wir nicht verarbeiten konnten. Bitte validieren Sie Ihre XML-Sitemap, bevor Sie sie neu einreichen.
Problem ermittelt am: 05.05.2010
[ul]
[li]Datei von nullzehn herunterladen und entpacken[/li][li]Datei “googlesitemap.[B]sh[/B]” in Editor öffnen[/li][li]Zeile “#! /usr/bin/php -q” am Beginn entfernen, entsprechende Änderungen an der Konfiguration vollziehen (Datenbank, Pfade) und als “googlesitemap.[B]php[/B]” speichern[/li][li]Datei auf den Server / Webspace laden[/li][li]Datei “sitemap1.xml” erstellen und im gleichen Verzeichnis ablegen[/li][li]Rechte (CHMOD) beider Dateien anpassen[/li][li]“googlesitemap.php” im Browser ausführen[/li][li]Wenn alles geklappt hat, wurde die “sitemap1.[B]xml[/B]” mit Inhalten gefüllt und kann jetzt bei Google eingereicht werden[/li][/ul]
Die Fehlermeldung bekam ich auch. Du musst ein paar Codezeilen löschen, damit das auf deinem Server / Webspace funktioniert. Im Anhang findest du die fertigen .php und .xml-Dateien. Einfach Datenbank- und Pfadinformationen eintragen und hochladen. Kurze Readme ist auch dabei. Danach sollte alles klappen.
Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) in /homepages/00/0000000/htdocs/xxxxxx/google_sitemap_xml.php on line 61
error connecting to database.
DatenbankDaten,fullpath etc sind eigetragen
Jemand eine Idee ?
für alle die obigen Fehler auch haben und nicht sofort wissen woran es liegt:
google_sitemap_xml -->// configuration —>$mod_cnf[’[B]s[/B]bhost’] ändern in $mod_cnf[’[B]d[/B]bhost’]
Gruss
Agadon
PS: Finde es mal wieder komisch, dass einige hier das Ding benutzen …alle sicherlich auch den Fehler bekommen müssten…aber keiner was sagt und unsereiner auf sowas (quasi) einfaches erst garnicht kommt als Fehler
vielen Dank für deine Nachricht. In der google_sitemap_xml.php war tatsächlich der beschriebene Fehler vorhanden. Ich habe den Fehler korrigiert und das ZIP-File in Beitag 31 erneut hochgeladen.
Bei mir (und scheinbar bei einigen anderen auch) gab es auch mit dem Fehler keine Probleme. Entweder hängt das mit der Verwendung von “localhost” als DB-Host zusammen, oder mit den Einstellungen des Anbieters (bei mir all-inkl). Vielen Dank, dass du den Fehler / die Lösung gemeldet hast. Viele Grüße,
könnt ihr einem Newbie nochmal genau erklären, was zu tun ist um dieses Sitemap zu benutzen? Ich habe mir jetzt die Dateien von Piengie runter geladen. Was genau muss ich jetzt machen. Die Liesmich-Datei hat mir leider nicht geholfen.
Ich muss jetzt also in der Datenbank eine neue Tabelle anlegen? Kann ich das über php-myadmin machen? Wie muss ich diese bennen?
In welchen Ordner muss ich die “google_sitemap_xml” und “sitemap” kopieren?
könnt ihr einem Newbie nochmal genau erklären, was zu tun ist um dieses Sitemap zu benutzen? Ich habe mir jetzt die Dateien von Piengie runter geladen. Was genau muss ich jetzt machen. Die Liesmich-Datei hat mir leider nicht geholfen.
Ich muss jetzt also in der Datenbank eine neue Tabelle anlegen? Kann ich das über php-myadmin machen? Wie muss ich diese bennen?
In welchen Ordner muss ich die “google_sitemap_xml” und “sitemap” kopieren?
Vielen Dank.[/QUOTE]
Hallo Anita,
im ZIP-Ordner liegt eien liesmich.txt, in der eigentlich alles erklärt ist:
// Sitemap installieren
(1) Datenbank- und Pfadinformationen in google_sitemap_xml.php eintragen
(2) Datei auf den Server / Webspace hochladen
(3) Rechte (CHMOD) der beiden Dateien anpassen
(4) google_sitemap_xml.php in Browser ausführen
(5) sitemap1.xml öffnen und Inhalt prüfen
// Sitemap an Google übertragen
(1) www.google.com/webmasters/tools?hl=de öffnen
(2) Mit Zugangsdaten anmelden
(3) Registrierte website auswählen
(4) Rechte untere Ecke "XML-Sitemaps" -> "Sitemap hinzufügen"
(5) URL zur Sitemap eingeben
Moin moin, @Piengie: Ich finde es gut,nett und einfach klasse wenn sich jemand die Arbeit hier macht und so ein (quasi) Modul frei-erhältlich bereitstellt…und dieses frei ist hier bei Oxid ja eher selten und von daher ging dieses PS von mir sicherlich nicht an dich.
Gruss
Agadon
[QUOTE=Piengie;31893]Hallo Agadon,
vielen Dank für deine Nachricht. In der google_sitemap_xml.php war tatsächlich der beschriebene Fehler vorhanden. Ich habe den Fehler korrigiert und das ZIP-File in Beitag 31 erneut hochgeladen.
Bei mir (und scheinbar bei einigen anderen auch) gab es auch mit dem Fehler keine Probleme. Entweder hängt das mit der Verwendung von “localhost” als DB-Host zusammen, oder mit den Einstellungen des Anbieters (bei mir all-inkl). Vielen Dank, dass du den Fehler / die Lösung gemeldet hast. Viele Grüße,
[B]@Agedon[/B] - Vielen Dank für das Bauchpinseln Die Sitemap ist nicht von mir, sondern von DIATOM. Ich hab nur die erweiterte Version von nullzehn zusammen mit einer liesmich.txt in ein ZIP-File gepackt. Als Reaktion auf deine PS-Zeile wollte ich nur darüber aufklären, warum sich niemand hinsichtlich deines Fehlers gemeldet haben könnte
[B]@Anita[/B] - Freut mich, dass du die Erweiterung nutzt. Du musst in der Datenbank [U]keine[/U] neue Tabelle anlegen. Die Zugangsdaten zur Datenbank, in der du OXID installiert hast, musst du bitte in die google_sitemap_xml.php eintragen (mit Editor öffnen). Nachdem du die Daten ergänzt hast, kannst du die Datei in jedes beliebige Verzeichnis hochladen (den entsprechenden Pfad musst du aber in google_sitemap_xml.php hinterlegen). Viel Erfolg bei der Installation und Nutzung!