Search the FirstSpirit Knowledge Base
Hintergrund:
Wir haben ein gravierendes Problem mit der Erzeugung der Sitemap-XML, mit mehrsprachigen URLs innerhalb unseres Multimandanten- Projektes.
Das Problem tritt z.B. bei der Generierung/Publizierung der Sitemap-XML auf.
Vermutlich erzeugt die Funktion ref(page, language, abs) bei der Publizierung eine falsch gespeicherte URL, einer anderen Sprache, die ins Leere verweist.
Nun kann man zwar in der Sitemap abfragen mit "pageref.getStoredUrl() != NULL" ob es eine URL gibt bevor man ref anwendet und damit vermeidet eine URL falsch zu speichern,
allerdings werden bei einem "full-publish" immernoch falsche URLs generiert/gespeichert, von einem Struktur-Ordner der nicht publiziert wurde, und dort auch gar keine URLs da sein dürften.
1. Frage:
Wie kann man vermeiden, dass falsche Site-URLs bei NICHT publizierten Ordnern abgelegt werden? Welcher Vorgang generiert/speichert die falschen URLs?
2. Frage:
Wie kann man denn sonst die Sitemap URLs aller Strukturseiten auslesen, wenn nicht über die gespeicherten URLs der Strukturseiten?
PS Die Sitemap XML mit einer Menge von falschen URLS, index-2.html, index-3.html ..., auszuliefern, birgt ein hohes Risiko, von google dafür abgestraft zu werden.
Hallo,
war der Ordner schon mal freigegeben? Hilft eventuell ein Löschen aller URLs (rechtsklick auf den root Struktur Ordner -> Extras -> Gespeicherte URLs zurücksetzen)?
Welcher URL-Creator wird verwendet (Projekteigenschaften -> Auftragsverwaltung -> Auftrag wählen -> Aktion wählen -> Pfaderzeugung)?
Grüße
Jan
Hallo Jan,
das ist richtig. Gespeicherte URLs zurücksetzen, und danch nochmal die sitemap publizieren ist hilfreich. Kann aber keine Lösung sein, denn nachdem ein full-publish gemacht wird, sind zu bestimmten nicht publizierten Seite wieder URLs drin durch irgendein ref() wahrscheinlich.
Benutzt wird ganz normal der Advanced URL Generator.
Hab Bild zur Verdeutlichung angehängt.
Ich vermute, dass man dieses Problem nur damit lösen kann, indem man Strukturvariablen definiert mit dem Boolean Wert notPublished z.B.
Das wäre zwar nicht so schön, da man diese ja zusätzlich pflegen muss. Eine andere Möglichkeit sehe ich aber nicht.
Hallo,
welche Sprache ist denn als Mastersprache ausgewählt?
Grüße
Jan
als Nachtrag noch:
Wenn ref für die Seite aufgerufen wird, wird die URL erzeugt. Das die Sprache nicht publiziert wird, führt nur dazu, dass die Seite nicht generiert wird. Das passt auch mit deiner Beschreibung zusammen, dass der Link ins Leere führt.
Grüße
Jan
Ich habe mal eine Frage, damit wir zu einem gemeinsamen Verständnis kommen: Was genau ist mit "falsche Site-URLs bei NICHT publizierten Ordnern" gemeint? Also was ist an der URL "falsch"? Und wie kommt es dazu, das Ordner "nicht publiziert" werden (werden z.B. nur bestimmte Ordner publiziert)?
Falsche Urls ist nicht die richtige Begrifflichkeit. Damit ist gemeint, dass die URL nicht existiert im HTML wenn man diesen Ordner mit der Seite darin noch nicht publiziert hat.
Ich hatte mir nur erhofft, dass man irgendwie ausfindig machen kann an welcher Stelle die URL gespeichert wird, obwohl keine da sein sollte oder man abfragen kann, ob schon publiziert worde.
Das geht aber scheinbar nicht, sodass man nur hilfsweise z.B. mit einer neuen Strukturvariable, die man setzen muss, abfragen kann, ob diese URL verwendet werden darf, weil es die Seite auch gibt oder eben nicht.
Hallo Alexander,
meines Wissens nach kann man pro Sprache in der "Site Structure" angeben, was in der Sitemap (wobei ich diese Funktion zur Erstellung der Sitemap nutze) erscheinen soll und was nicht:
Diese Einstellung greift für alle Kinder in dem Ordner "Impressum". Man kann das auch auf Ebene der Kinder einstellen (ebenfalls pro Sprache!):
Ich hoffe ich konnte Dir weiterhelfen.
Grüße Marian
Hallo Alexander,
ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnten dir die bisherigen Antworten weiterhelfen?
Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.
Viele Grüße
Michaela