Umgang mit Vanity URLs

Allgemeines

In CQ/AEM gibt es eine Funktionalität für Kurz-URLs genannt Vanity URLs. Diese werden genutzt, um z.B. marketing-freundliche URLs zu erzeugen. Z.B. www.domain.de/jobs, um eine URL für eine Job-Kampagne zu haben. Im Normalfall wird beim Aufruf dieser URL eine automatische Weiterleitung auf die eigentliche Seite im CQ/AEM erfolgen. Z.B. auf www.domain.de/de/home/company/jobs.html.

Die Verwendung von Vanity URLs im Autoren-Interface ist in der Adobe Dokumentation kurz beschrieben.

Redirect / SEO

Eine Weiterleitung in AEM erfolgt standardmäßig mit dem HTTP-Status 302 „Found“.  Aus SEO-Sicht stellt die Verwendung einer Vanity-URL allerdings keine vorübergehende Weiterleitung dar, sondern eine permanente. Daher sollte CQ/AEM so konfiguriert werden, dass der Redirect mit dem Status Code 301 „Moved Permanently“ erfolgt.

Die Einstellung des Default HTTP-Status erfolgt im Apache Felix im „Apache Sling Resource Resolver Factory“ in der Einstellung „Default Vanity Path Redirect Status“.

Technische Hürden

1.) In der Dispatcher-Konfiguration wird standardmäßig mit einem Whitelisting-Ansatz das System gehärtet.

D.h. nur bestimmte Pfade sind erlaubt. Vanity URLs stehen immer direkt hinter der Domain und daher ist der Aufruf redaktionell gepflegter Vanity URLs meistens nicht so einfach möglich.

Lösungsidee

Für dieses Probleme gibt es einen Lösungsansatz, der wie folgt aussieht:

  • Vanity URLs werden vom Redakteur mit einem vanity/ als Prefix gepflegt. Z.B. vanity/jobs
  • Im Webserver gibt es eine Rewrite Rule, welche Vanity URLs erkennt und entsprechend umschreibt („/jobs“ wird umgeschrieben, „/jobs/zwei“ nicht)
    RewriteRule ^/([-0-9a-z]+)$ /vanity/$1 [PT]
  • In der Dispatcher-Konfiguration gibt es einen Whitelist-Eintrag für Pfade, die mit „vanity/“ beginnen
    /0123 { /type "allow" /glob "GET /vanity/*" }
  • Damit ist die Verwendung von Vanity URLs mit dem Prefix „vanity/“ ohne weitere Konfigurationen redaktionell nutzbar.

Ab einer Dispatcher-Version 4.1.9 wird es für dieses Problem seitens Adobe eine neue Möglichkeit für Vanity-URL-Konfigurationen im Dispatcher geben. Dieses Feature wurde in einem Screencast vorgestellt, ist allerdings anscheinend noch nicht dokumentiert.

2.) Vanity URLs müssen im Gesamtsystem eindeutig sein, was zu Problemen bei Multimandanten-Systemen führt. So kann ein Mandant B nicht nochmal eine selbe Vanity URL vergeben, wenn sie schon Mandant A vergeben hat

Lösungsidee

Wenn mehrere Mandanten existieren, benötigt es noch einen weiteren Bezeichner in dem konfigurierten Vanity-URL-Prefix. Das durch den Redakteur zu pflegende Prefix müsste um den Mandantenbezeichner erweitert werden und wie folgt lauten: „vanity/<mandant>/„. Jeder Mandant hätte vermutlich eine eigene Webserverkonfiguration, so dass die o.g. Rewrite Rule pro Mandant entsprechend um den Namen des Mandanten erweitert werden müsste.

3.) Es gibt keine Auflistung der Vanity URLs im CQ/AEM.

Lösungsidee

Entweder ein Servlet schreiben, welches sich dieser Query bedient und eine Ausgabe z.B. in Form einer csv-Datei generiert. Denkbar wäre auch eine Ausgabe auf einem technischen Template. Standardmäßig gibt es nur eine Auflistung aller Mappings inkl. Vanity-URLs in der Felix Konsole unter „Status“ -> „Sling Resource Resolver

4.) Vanity-URLs ohne Extension und ohne Redirect werden nicht gecached

Lösungsidee

Es ist ebenfalls eine Lösung über Apache mod_rewrite möglich / denkbar. Zum Beispiel, wenn man davon ausgeht, dass alle URLs ohne Extensions Vanity-URLs sind. Weitere Problematik kommt mit verschiedenen Mandanten.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>