Joomla SEF mit sh404SEF

In dieser Kategorie finden Sie Informationen zur Verwendung speziell der Komponente sh404SEF bei der Umsetzung eines search engine friendly-Joomlas, sowie ein wenig Hintergrundwissen, für eventuelle diesbezügliche manuelle Scriptanpassungen.

Anpassungen von sh404SEF für PHP5.3

Bewertung:  / 4

Problembeschreibung

Mit Umstellung von Webservern von der PHP-Version 5.2.x auf 5.3.x gelten einige Befehle als veraltet (deprecated). Wurden Komponenten von den Herstellen diesbezüglich nicht weitergepflegt wird es bei dem einen oder anderen Projekt zunächst zu Warnmeldungen kommen und später zur Funktionsverweigerung.

Wenn es nur Warnungen sind, kann man das Problem vorübergehend unterbinden, wenn man die Ausgabe von Warnungen für den Webserver abstellt (display_errors = off). Damit ist das Problem aber nur in die Zukunft verschoben, aber man gewinnt Zeit um die Projektumstellung in Ruhe zu realisieren - entweder in dem Komponenten selbst angepasst werden oder indem man das Joomla auf z.B. 2.5.x migriert inkl. der neuen Komponenten.

Eine diese Komponenten ist z.B. sh404SEF für Joomla 1.5.x. Hier wird z.B. häufig der veraltete Befehle eregi() zum String-Ersetzen verwendet, was durch die jetzt gültige funktion preg_match() ersetzt werden muss.

 

Problem mit Joomla-Seiten und sh404SEF (mailto-Komponente)

Bewertung:  / 9

Problembeschreibung

Auch Joomla 1.5.x selbst bereitet kleine Probleme mit der SEF-Umsetzung. So z.B. mit der MailTo-Funktion, oder anders „Seite per E-Mail weiterempfehlen". Diese Funktion ist auf jedem Joomla-Beitrag oben über das Mailto-Icon erreichbar. Das besondere Problem hierbei ist, dass im URL ein sehr langer ständig wechselnder Code-Link eingebaut ist. Damit entstehen äußerst suchmaschinen-unfreundliche URLs. Der angehängte Schlüssen codiert quasi die damit verbundene Seite. Es führt zu enorm vielen Einträgen in der jos_redirection-Tabelle für die SEF-Umsetzungen. Bestenfalls wird für jede Beitragsseite auch eine Seite_weiterempfehlen.html-URLs in der jos_redirection abgelegt. Außerdem, und das liebt z.B. Google nicht unbedingt, werden viele Seiten-Dublikate erzeugt, denn konkret ist dieses Formular ja völlig identisch unter verschiedensten URLs abrufbar. Alle diese Seiten werden in den Suchmaschinen sichbar sein.

SEF in der Page-Navigation von Trefferlisten unterdrücken

Bewertung:  / 1

Nachfolgende Beschreibung bezieht sich auf die Problematik des SEF bei evtl. Pagenavigationen zur Anzeige von Folgeseiten einer Trefferlistenausgabe, wie z.B. bei Produktsuchen in VirtueMart. Nachfolgende Lösung ist auch daran konkret

Problembeschreibung

Kann man bei Trefferlistenseiten blättern, so wird durch sh404SEF für diese Seiten an die Adresse die Zählung angefügt in dieser Form: Pfad/Page-1-50.html. In Konsequenz bedeutet dieses Verhalten, dass es pro Seite wo eine Pagenavigationen angeboten werden i.d.R. bis zu 10 solcher Folgeseiten existerien könnten. Noch extremer wird es, wenn der Seitenbesucher selbst die Pagenavi-Einstellungen modifiziert, z.B. die Anzeige der Trefferzahl. Dann kämen zum Standard noch diese individuellen dazu. In der Redirection-DB-Tabelle kommen so schnell eine riesige Menge an Datensätzen zustande und bremsen das System aus.

Dieses Verhalten allerdings zu unterdrücken ist nicht ratsam. Statt dessen solle Google der Zugriff auf die Folgeseiten verboten werden oder noch besser, wenn für diese Links keine SEF-URL-Erzeugung stattfindet. Das ist nämlich auch gar nicht notw. weil diese Links von Google eh nicht erreicht werden, weil Sie immer nur auf konkreten Trefferlisten mit vorherig auszufüllenden Suchmasken erscheinen.

Lösung

Um zu verhindern, dass Pagination-Links SEF-übersetzt werden, ist konkret wie folgt zu verfahren – allerdings hat dies noch eine Ungereimtheit. In den Links wird die URL zwar im Original belassen, aber sobald die neue Seite aufgerufen ist, steht als URL in der Adresszeile trotzdem der übersetzte URL und auch in der jos_redirection stehen diese nach wie vor drin. Damit ist der Erfolgt insgesamt etwas fragwürdig.

Entscheidend ist der URL der erzeugt wird. SEF wendet dann die Übersetzung an, wenn der URL mit index.php beginnt oder mit der Domain. Das SEF wird sofort verhindert, wenn der URL mit / beginnt.

Die Pagination wird in der Scriptklasse pageNavigation.class.php erzeugt, aber die Funktion getPagesLink() oder writePagesLinks() erwarten als Parameter immer schon die Link-URL. Diese wird als Funktionsparameter $link verwendet.

Die jos_redirection warten und bereinigen

Bewertung:  / 1

Nachfolgende Beschreibung ist eine Handlungsanweisung, wie man die SEF-Tabelle jos_redirection von Zeit zu Zeit bereinigen kann um ein Zumüllen und Ausbremsen des Systems zu vermeiden, wie es sonst z.B. gerade bei der Nutzung des SEF durch VirtueMart passiert.

Problembeschreibung

Im Shop wurden einige URLs per SEF erzeugt, die eigentlich als solche nicht notwendig sind, weil sie z.B. durch Google eigentlich nicht gesehen werden, weil diese entweder ein Login voraussetzen wie z.B. „Meine Bestellungen auflisten“ oder eine vorherige Suche wie z.B. bei der Rohmaterialsuche oder HW-Volltextsuche voraussetzen – hier dann konkret die Links der Pagination. Diese blähen die jos_redirection in kurzer Zeit schnell auf mehrere zig-Taussend Datensätze auf, mit fast redundanten Links. Es steht sehr zu befürchten, dass dies die Zugriffe auf die Seiten zunehmend verlangsamen wird. Deshalb ist von Zeit zu Zeit eine Bereinigung sinnvoll.

Das sh404SEF-Funktionsprinzip und URL-Handling

Bewertung:  / 1

Es gibt kein Rückkodierungsscript

Wichtig ist folgendes zur Funktionsweise der sh404ESF-Komponente zu verstehen. URLs werden nur in eine Richtung – hin zum SEF-URL kodiert. D.h. aus einer realen URL wird per sh404SEF-Scripte ein SEF-URL Entsprechung erstellt und diese in die auszugebenden Websites statt der realen URLs eingebaut. Jede Adresse, die auf diese Weise erzeugt wird, wird auch automatisch in der Joomla-SEF-Datenbanktabelle jos_redirection eingetragen. Eine Rückwärtskodierung, d.h. die Auflösung einer old-SEF-Adresse zurück zu ihrer Real-Adresse erfolgt nie! Statt dessen wird zu diesem Zweck immer in die Tabelle jos_redirection geschaut und so das non-SEF-Gegenstück (counterpart) ermittelt und an Joomla weitergeben. Dieser Vorgang nennt sich „reverting".

Suche - Kategorien
Suche - Inhalt
plg_search_attachments
VM - Search, Virtuemart Product

Ihr Warenkorb

 x 
Ihr Warenkorb ist noch leer.