Startseite Joomla Canonical URL Modul
2010-09-09
Hauptmenü
externe Links
Meist gelesen
Support

Wenn Sie die Erweiterungen und Scripts auf diesen Seiten nützlich finden, freue ich mich über Ihre Unterstützung. Danke!

Betrag: 

Joomla: Canonical URL Modul
Geschrieben von: Andreas Berger   
Freitag, den 13. Februar 2009 um 22:55 Uhr

Das bretteleben.de "Canonical URL" Modul für Joomla 1.5 erlaubt es selektiv die von Google seit Februar 2009 unterstützten Canonischen URLs (canonical url) im HEAD von Seiten zu setzen. Dies dient der Vermeidung von DuplicateContent und dem Konzentieren des PageRank auf eine Seite, wenn diese unter mehreren URLs erreichbar ist.

bretteleben.de "Canonical URL" Modul für Joomla 1.5

Das bretteleben.de Canonical URL Modul ist mit Joomla 1.5 einsetzbar.

Das Modul bietet 10 Parameter-Paare, mit denen die tatsächliche URL modifiziert und für das Setzen des TAGs <link rel="canonical" href="/gewünschter Link"> aufbereitet werden kann. Beginnend mit Version 1.1 können mehrere Instanzen des Moduls die URL einer Seite bearbeiten. Dies erfolgt in der Reihenfolge, in der die Module im Backend angegeben sind.

Neu in Version 1.1:

-mehrere Instanzen kumulierend möglich

Features:

- ersetzen einzelner Teile des Pfades
- entfernen unerwünschter GET-Parameter

- setzen einer fixen canonischen URL

Installation und Verwendung

1.) Das Modul über das Backend hochladen.
2.) Das Modul für alle oder einzelne Menüpunkte aktivieren.
3.) Parameter:
Es stehen zehn Parameter-Paare zur Verfügung.
Jedes Paar besteht aus dem text, der gesucht und dem Text, mit dem er ersetzt werden soll.

Beispiel: Joomfish wird verwendet, es sind aber noch nicht alle Seiten übersetzt. Um zu verhindern, dass man von Google für DuplicateContent abgestraft wird, setzt man bei noch nicht übersetzten Seiten die Originalseite als canonische URL.

Rule01: Find part of URL: lang-en
Rule01: Set part of URL: lang-de

Damit wird auf diesen Seiten die deutsche Version als Canonical URL gesetzt.


Beispiel2: Man verwendet yvComment, möchte jedoch nicht, dass die Unterseiten mit den Artikeln 10-20, 20-30, etc. als eigene Seite indiziert werden, um den Pagerank auf die jeweilige Hauptseite zu konzentrieren.

Rule02: Find part of URL: start=
Rule02: Set part of URL:

Der Text im ersten Abschnitt endet mit einem Istgleichzeichen. Das Modul erkennt das als zu ersetzenden Parameter und ersetzt den Parameter samt den jeweiligen Werten (0,10,20, was auch immer) gegen den im zweiten Teil eingegebenen Text - in diesem Fall gegen nichts.
Hinweis: Das ? vor beziehungsweise das & (oder & amp;) nach einem Parameter wird NICHT angegeben, darum kümmert sich das Modul selbst.

Beispiel3: Man möchte für eine bestimmte Seite ungeachtet aller möglichen und unmöglichen auftretenden URLs eine bestzimmte URL festsetzen, unter der die Seite indiziert werden soll.

Rule03: Find part of URL:
Rule03: Set part of URL: /meine-gewuenschte-url.html

In diesem Fall bleibt der erste Teil der Regel frei. Das sagt dem Modul: ersetze die gesamte (relative) URL.

Das Modul arbeitet die gesetzten Regeln der Reihe nach ab und fügt dann den Link rel="canonical" mit der generierten URL in den Head der Seite ein.
Der Domain-Teil der URL bleibt von diesem Plugin unberücksichtigt. Alle Änderungen in diesem Bereich sollten nach wie vor per Redirect geregelt werden.

Einschränkungen:


Verbesserungsvorschläge und Vorschläge für eine Erweiterung der Funktionalität sind hochwillkommen!
Das Modul ist mit Vorsicht zu geniessen, den ein fehlerhaftes Setzen der Parameter kann dazu führen, dass Seiten aus dem Google-Index gänzlich verschwinden! Also jede getroffene Einstellung bitte im Quelltext der betroffenen Seite auf korrektes Funktionieren testen!!!
Das Modul ist kein Ersatz für das Joomla-eigene SEF-Plugin oder eine externe SEF-Erweiterung. Es ist nur eine Ergänzung!

Eine Schritt für Schritt Anleitung zu Installation und Verwendung folgt.

Demo

Im Menüpunkt Joomla: Very Simple Image Gallery ist das Modul in Verwendung und setzt den Link zur Seite als canonische URL, auch wenn es mit den GET-Parametern von yvComment aufgerufen wird (beim Blättern in den Kommentaren).

Kompatibilität

Das Modul ist unter Joomla 1.5.6, 1.5.7 und 1.5.8 erfolgreich getestet, das Zusammenspiel mit den verschiedensten anderen Erweiterungen mag aber Probleme mit sich bringen. Ich empfehle einen Testlauf vor dem Einsatz auf einer aktiven Seite und stehe für Fragen und Anregungen immer gerne zur Verfügung.

Lizenz

Das Modul ist unter der GNU Public License (www.gnu.org/copyleft/gpl.html) lizensiert.

aktuelle Version: 1.1.0

Version 1.1.0 - 2009-03-29

- Das Modul überprüft ob von einer anderen Instanz bereits eine canonische URL gesetzt wurde und bearbeitet diese weiter.

Version 1.0.0 - 2009-02-13

Support

Für Fragen und Anregungen steht die Kommentarfunktion zur Verfügung, Erfahrungsberichte (ob positiv oder negativ) sind hochwillkommen.

Wer die Erweiterung nutzt, hat die Möglichkeit auf joomlaos.de oder extensions.joomla.org Bewertung und Erfahrungsbericht zu posten. Darüber hinaus freue ich mich über jeden, der die Möglichkeit findet, mich durch einen Link zu www.bretteleben.de auf seiner Webseite zu unterstützen. Das Plugin selbst produziert keine versteckten Links oder sonstige Nettigkeiten welcher Art auch immer.

Download

Das ZIP-Archiv enthält das Modul, mit dem Download erklären Sie sich mit den Bestimmungen der GNU Public License einverstanden. Das ZIP-Archiv kann für Update und Neuinstallation verwendet werden.

Downloads:
DateiZuletzt bearbeitet
Diese Datei herunterladen (mod_canonical_1.1.0.zip) mod_canonical_1.1.0.zip2009-03-29
Zuletzt aktualisiert am Mittwoch, den 13. Januar 2010 um 09:10 Uhr
 
Kommentare (42)
@Dobrin
12 Samstag, den 25. Juli 2009 um 05:34 Uhr
A. Berger
Hi Dobrin!

The redirect from the domain (domain.com)to the subdomain (www.domain.com) is intentionally not part of what this module offers. This task is best done with mod_rewrite. This is the most common plus the most safe way to do this. In addition you could use Google's free webmaster tools to tell Google which host to use.
This module has it's scope in preventing you from getting punished for duplicate content and/or in correcting the urls of extensions that don't offer SEF-integration.

To redirect from domain to subdomain with mod_rewrite in your .htacces you may want to use something like (please check and test this - no warrenty!!!):

# if not already present
RewriteEngine On

# always use www
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
RewriteRule ^(.*) http://www.mydomain.com/$1 [R=301]


Best regards
Andreas
www or http://
11 Freitag, den 24. Juli 2009 um 20:11 Uhr
Dobrin
Hi,
sorry for the Q, but how to set the modul so the right address to be http:// and not www.?
Really sorry, but not so good with codes. Thank you in advance.
@Keschu
10 Montag, den 25. Mai 2009 um 19:57 Uhr
A. Berger
Hallo Keschu!

Hast recht - ich werde die Option, die GET-Parameter in einem Rutsch zu entfernen mit dem nächsten Update einbauen.

Danke für die Anregung
Andreas
Platzhalter fehlt oder habe ich es übersehen?
9 Samstag, den 23. Mai 2009 um 13:21 Uhr
Keschu
Mir viel aber ein Problem auf. Google hat bei mir einige Links mit einer ID hinter dem html gelistet zB.: www.test.de/test.html?83dd1e0e0353 (Nummer gekürzt)
Wenn ich dann bei Find part of URL eingebe: "html?" und bei Set part of URL eingebe: "html" ersetzt er das zwar, aber gebe ich "html?*" oder "html?=" ein, passiert nichts mehr. Also es wäre gut, wenn man noch einen Platzhalter angeben kann, damit der Teil dahinter komplett mit in die Regel einbezogen wird, dann wäre das Modul wirklich super.
URL
8 Freitag, den 27. Februar 2009 um 12:58 Uhr
Pixel (auch Andreas :-) )
Super und vielen Dank für dein Feedback und sorry für meine versätete Meldung. Dann habe ich ja nichts verkehrt gemacht, wenn ich das per htaccess bewerkstellige.
@Pixel
7 Montag, den 23. Februar 2009 um 21:32 Uhr
A. Berger
Hallo Pixel!

Das Umleiten einer Domain (wappensalon.de) auf eine Subdomain (www.wappensalon.de) habe ich bewusst ausgeklammert. Dafür ist mod_rewrite die wesentlich bessere Lösung. Alleine schon deshalb, weil es universell funktioniert. Das setzen der canonischen URLs wird zwar von Google unterstützt und es ist damit zu rechnen, dass andere Suchmaschinen nachziehen, aber es gibt keine Garantie dafür. Die sicherere Lösung ist also der Eintrag in der htaccess. Umso mehr, als man diesen 1x setzt und dann Ruhe hat.
Den Einsatz des Moduls sehe ich eher dort, wo zum Beispiel temporär sichergestellt werden soll, dass man nicht für Duplicate Content abgestraft wird, oder beim Einsatz von Erweiterungen, die keine SEF-Integration bieten, in Situationen also, in denen man nicht unbedingt jeweils per FTP hochladen, testen, hochladen, testen ... usw. möchte.

Ich empfehle Dir demzufolge auch, in der .htaccess auf www.wappensalon.de umzuleiten. Der Eintrag sollte - bitte check das gegen - wohl lauten:

# wenn nicht ohnehin schon eingetragen:
RewriteEngine On

# nichts geht ohne www
RewriteCond %{HTTP_HOST} ^wappensalon.de$ [NC]
RewriteRule ^(.*) http://www.wappensalon.de/$1 [R=301]

So lautet zumindest - sinngemäß - mein Eintrag.

Gruß
Andreas
Anleitung
6 Montag, den 23. Februar 2009 um 10:23 Uhr
Pixel
darüber würde ich mich auch sehr freuen.
Beispiel:
Meine URL kann man so aufrufen http://wappensalon.de oder so httpp://www.wappensalon.de
Ich habe in einem anderen Beitrag das ganze mit .htaccess gesehen und auch nachvollzogen. Nach der Änderung der htaccess bekamm ich beim Aufruf von http://wappensalon.de in der Adresszeile automatisch http://www.wappensalon.de angezeigt. Das war ja nachvollziehbar für mich.
Wenn ich aber im Modul unter Rule01: Find part of URL: http://wappensalon.de eintrage und bei-> Rule01: Set part of URL: http://www.wappensalon.de eintrage, dann passiert in der Adresszeile gar nichts. Aber sicherlich mache ich was falsch. Deshalb bitte nochmal für Laien ein kurze Erläuterung. Vielen Dank
@Greg
5 Sonntag, den 22. Februar 2009 um 17:33 Uhr
A. Berger
Hi Greg!

It should be a plugin following the Joomla philosophy, that a module creates some output in a defined area while a plugin modifies output. Anyway, with modules you can do funny things you can't with plugins.
It is possible to run many instances of a module and this way use different rules for different menu items. With a plugin, your rules have to work site wide. With a module, a rule has to work within it's scope only. This way you may use conflicting rules for different items!

It is possible to add/remove menu-items to a rule (or vice versa) just with one click from the backend.
Imagine a site, using Joomfish, being only partial translated. It's just one click to enable a rule, that sets the default-language as canonical URL for a new article - and one more click to remove it, once the article is translated.

I will work on the functionality and try to improve this extension further. The next update will - if it works out - check for already existing canonical URLs and work with them - this way allowing to combine overlapping instances of the module (site wide and specific) Anyway - and as already said on this page - it will always be an addition and never replace a full grown SEF-extension.

You asked about SefAdvance - I will have a look at the extension, I have not used it till now and without having done a little testing and checked out the implications I cannot say at the moment if I will try to work on rewritten URLs to.

Kind Regards
Andreas
The same with the SEF rewrited url ?
4 Sonntag, den 22. Februar 2009 um 17:14 Uhr
Greg
Hello,

not so bad ;-)

I'm just wondering why you didn't do it with a plugin, because the module is pretty annoying with some templates as he put a blank space where he is.

And I want to know if this is possible to have the rewrite url instead of the non rewrite one ?
Must say that I use SefAdvance.

Thanks for all of your work
@Dan
3 Donnerstag, den 19. Februar 2009 um 21:24 Uhr
A. Berger
Hallo Dan!

Für eine - mit einem Zufallswert beginnende - SessionID ist das Modul bislang nicht ausgelegt, und ich würde in diesem Fall auch zuerst versuchen, das Problem (die sichtbare SessionID) zu beheben und erst wenn garnichts hilft, dazu übergehen, den Folgen entgegenzusteuern.

Google findet einiges zu diesem Thema (z.B.: http://www.joomlaportal.de/allgemeine-fragen-zu-joomla-1-5/123021-session-ids-bei-joomla-1-5-mit-firefox-und-opera.html) und ich empfehle, als ersten Schritt da alle Möglichkeiten auszuschöpfen.

Hilft garnichts, dann bin ich gerne bereit, auch diese Möglichkeit in zukünftige Versionen zu integrieren.

Gruss
Andreas