Was sind Kurz-URLs / ShortUrl (KU)?
Ab Version 6.0.6 ermöglicht ePages die Verwendung von KU als Alternative zu den bisherigen URLs. Kurz-URLs (KU) sind kurze, kompakte URLs, die auf bestimmte Objekte im Shop (Produkte, Seiten) verweisen.
Die KU wird wie folgt zusammengesetzt: [ShopDomain]/[ShortUrlId]
-
Beispiel: http://www.meinshop.de/MyProduct
Der Händler kann die Kurz-URL-ID für alle Seite vergeben, welche auf Objekten der Klasse ContentObject basieren:
-
Produkt,
-
Ressource,
-
Kategorie (auch Aktionsprodukte),
-
Redaktionelle Seite,
-
Forum,
-
Gästebuch,
-
Blog,
-
Bildergalerie,
-
Geschäftszeiten,
-
Sitemap,
-
ABG,
-
Impressum,
-
Datenschutzerklärung,
-
Kundeninformationen
Die Kurzform der URL ist ab Aktivierung die primäre URL für die entsprechende Seite im Shop.
Die Verwendung der kurzen URLs ist für alle Shoptypen zulässig, wird also nicht durch Lizenz oder Shoptyp eingeschänkt.
Für bestimmte Seiten können keine KU vergeben werden:
-
Mein Konto,
-
Warenkorb,
-
Registrierung,
-
Newsletter*Abo,
-
Erweiterte Suche,
-
Bestellformular
Vorteile
In den Ergebnislisten von Suchmaschinen wird die URL des Treffers mit aufgeführt. Diese URL sollte daher kurz und aussagekräftig sein.
-
Taucht der Suchbegriff in der URL auf, wird dieser dort fett hervorgehoben.
-
Kurze URLs lassen sich in E-Mails und auf Ausdrucken besser handhaben (kein Umbruch im Link).
-
Kurze URLs lassen sich einfacher merken.
-
Kurze URLs lassen sich einfacher in externe Seiten integrieren.
Funktionsweise
Wichtig: Die Verwendung der kurzen URLs ist nur für Shops mit eigener Domain möglich.
-
Beim Request mit der URL http://www.meinshop.de/MyProduct wird diese an den Webserver übergeben.
-
Im Webserver findet ein Rewrite statt auf http://www.meinshop.de/epages/.shorturl?URI=MyProduct
-
Der RequestRouter erkennt anhand der Domain "www.meinshop.de" den Application-Server-Pool und leitet Anfrage dorthin weiter
-
Ein neues Servlet übernimmt den Request und erkennt anhand der Domain die StoreDB und die ShopID
-
Das Servlet startet eine Datenbankabfrage mit dem Parameter "MyProduct" für den identifizierten Shop.
-
Die Antwort liefert StoreAlias, GUID oder ObjectID. Gibt es die aufgerufene ShortUrlId nicht, wird der Fehler 404 "Die angeforderte Seite existiert nicht. …..> Weiter zur Webseite" des Shops wird angezeigt.
-
Die Daten werden an das Storefront-Servlet übergeben und dort weiterverarbeitet.
Intern werden die ursprünglichen, langen URLs verwendet.
Vermeidung von "Duplicate content"
Da mehrere URLs (von intern und extern) zur selben Seite führen, würden diese bei Suchmaschinen in Probleme aufgrund "duplicate content" (kopierter Inhalt) laufen. Beispiel-URLs für die gleiche Seite:
http://www.meinshop.de/epages/DemoShop.sf/de_DE/?ObjectPath=/Shops/DemoShop/Products/lt_0401107001
http://www.meinshop.de/MyProduct
http://server/epages/DemoShop.sf/?ObjectPath=/Shops/DemoShop/Products/lt_0401107001&ViewAction=ViewProductViaPortal&Locale=de_DE&et_cid=1&et_lid=1
Um dies zu vermeiden, werden canonical Links verwendet. Im Quelltext wird das neue HTML-Tag <link rel="canonical" href="…" /> eingefügt. Für alle Seiten, für die eine ShortUrlId in der entsprechenden Sprache angegeben ist, wird im HEAD-Bereich der Eintrag <link rel="canonical" href="Domain/[ShortUrlId]" /> hinzugefügt.
Im Ergebnis ziehen Suchmaschinen das Ranking aller URLs der selben Seite auf diesen Link (also den "canonical") zusammen und zeigen ausschließlich diesen im Suchergebnis, dem natürlichen Index.
Änderungen und Funktionen
BBO
Für den Shop muss eine eigene Domain eingetragen werden.
MBO
-
Ist die Domain eingetragen, wird auf der MBO-Startseite der Hinweis angezeigt, dass der Administrator KU vergeben kann.
-
Der Administrator kann entscheiden, ob die KU manuell oder automatisch erzeugt werden.
-
Beim automatischen Erzeugen werden die KU für alle relevanten Objekte nach o.g. Bildungsvorschrift erzeugt. Eventuell vorhandene KU werden nicht überschrieben.
-
Für das manuelle Erzeugen gibt es auf den Detailseiten der jeweiligen Objekte Eingabefelder. Hier kann der Administrator eigene Namen für die KU eintragen. Für jede Sprache kann eine sprachrelevante KU eingetragen werden.
-
Ändert der Administrator eine bestehende KU, wird er vor dem Speichern auf die Konsequenzen einer geänderten URL hingewiesen.
Regeln für die ShortUrlId
Die zulässige Länge der ShortUrlId beträgt 255 Zeichen.
Zulässge Zeichen und Sequenzen:
-
Zulässige Zeichen: a…z, A…Z, 0…9, "-", "/"
-
Unzulässige Zeichen: Alle anderen, auch ",", "." und Leerzeichen
-
Darf nicht mit "/" anfangen oder aufhören
-
Einige ländertypische oder Sonderzeichen werden automatisch durch zulässige Zeichen ersetzt. Dies sollte jedoch nur ausnahmsweise genutzt werden, um Duplikate zu vermeiden.
Apache-Konfiguration bei Nichtstandard-Installationen
Sollten die KU nicht funktionieren, ist gegebenenfalls eine manuelle Konfiguration des Systems erforderlich.
Kurz-URL-Rewrite für bestimmte Hosts weglassen
Die Datei /etc/apache2-epages/envvars definiert in der Umgebungsvariablen APACHE_SHORTURL_EXCEPT Hosts, auf die kein Kurz-URL-Rewrite angewandt werden soll.
Beispiel:
APACHE_SHORTURL_EXCEPT="localhost 127.0.0.1"
Ein Request von einer der in APACHE_SHORTURL_EXCEPT aufgeführten Hosts (durch Leerzeichen getrennt) führt nicht zu einem Kurz-URL-Rewrite.
Nach einer Änderung von /etc/apache2-epages/envvars muss Apache neu gestartet werden (Reload reicht nicht).
Kurz-URL-Rewrite für bestimmte URIs weglassen
Die Datei /etc/apache2-epages/extra/httpd_mod_rewrite.conf definiert, für welche URIs keine KU gebildet werden sollen. Es ist nicht nötig, den Standardzeilen zu ändern:
RewriteCond %{REQUEST_URI} !^/icons_closed/
RewriteCond %{REQUEST_URI} !^/epages/
RewriteCond %{REQUEST_URI} !^/Monitor/
RewriteCond %{REQUEST_URI} !^/WebRoot/
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_URI} !^/monitor.pl
RewriteCond %{REQUEST_URI} !^/Maintenance/
RewriteCond %{REQUEST_URI} !^/WebSecure/
RewriteCond %{REQUEST_URI} !^/ShopExport/
RewriteCond %{REQUEST_URI} !^/rs/
RewriteCond %{REQUEST_URI} !^/api/
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.cgi
RewriteCond %{REQUEST_URI} !^/webservertest/