Dispatcher Vanity-URLs | AEM
In diesem Dokument erfahren Sie, wie Adobe Experience Manager Vanity-URLs verarbeitet und wie zusätzliche Verfahren eingesetzt werden, z. B. die Verwendung von Neuschreibungsregeln, um Inhalte näher an den Versandrand zu bringen.
Beschreibung description
Umgebung
Adobe Experience Manager
Probleme/Symptome
Wie geht AEM mit Vanity-URLs um? Gibt es zusätzliche Techniken, um Inhalte näher am Versandrand zuzuordnen?
Was sind Vanity-URLs?
Wenn Inhalte in einer sinnvollen Ordnerstruktur vorhanden sind, befinden sie sich nicht immer in einer URL, die leicht zu referenzieren ist. Vanity-URLs sind wie Tastaturbefehle. Kürzere oder eindeutige URLs, die auf den Ort verweisen, an dem der eigentliche Inhalt lebt.
Beispiel: /aboutus Verweis auf /content/we-retail/us/en/about-us.html
AEM-Autoren haben die Möglichkeit, Vanity-URL-Eigenschaften für einen Inhalt in AEM festzulegen und zu veröffentlichen.
Damit diese Funktion funktioniert, müssen Sie die Dispatcher-Filter anpassen, um die Eitelkeit zu ermöglichen. Dies ist nicht mehr sinnvoll, wenn die Dispatcher-Konfigurationsdateien so angepasst werden, wie Autoren diese Vanity-Seiteneinträge einrichten müssen.
Aus diesem Grund verfügt das Dispatcher-Modul über eine Funktion, um alle Elemente automatisch zuzulassen, die als Vanity-Elemente in der Inhaltsstruktur aufgeführt sind.
Auflösung resolution
Funktionsweise
Erstellen von Vanity-URLs
Der Autor besucht eine Seite in AEM, besucht die Seiteneigenschaften und fügt die Einträge von im Abschnitt Vanity-URL hinzu.
Nachdem sie ihre Änderungen gespeichert und die Seite aktiviert haben, wird die Vanity-Instanz nun dieser Seite zugewiesen.
Touch-optimierte Benutzeroberfläche:
Classic Content Finder:
Hinweis: Dies ist sehr anfällig für Namespace-Probleme. Vanity-Einträge sind auf allen Seiten global, dies ist nur einer der Mängel, für die Sie Workarounds planen müssen. Einige davon werden wir später erläutern.
Ressourcenauflösung/Zuordnung:
Jeder Vanity-Eintrag ist ein Sling-Zuordnungseintrag für eine interne Umleitung. Diese Zuordnungen sind in der Felix-Konsole (/system/console/jcrresolver) der AEM-Instanzen sichtbar
Im Folgenden finden Sie einen Screenshot eines Karteneintrags, der von einem Vanity-Eintrag erstellt wurde:
Wenn wir im obigen Beispiel die AEM-Instanz auffordern, /aboutus aufzurufen, wird sie aufgelöst zu /content/we-retail/us/en/about-us.html
Dispatcher-Filter für automatisches Zulassen:
Der Dispatcher in einem sicheren Zustand filtert Anfragen im Pfad / durch den Dispatcher heraus, da dies der Stamm der JCR-Struktur ist.
Es ist wichtig sicherzustellen, dass Herausgeber nur Inhalte aus dem /content und anderen sicheren Pfaden usw. zulassen und keine Pfade wie /system usw.
Hier ist das Problem, Vanity-URLs live im Basisordner von / also wie können wir es ihnen ermöglichen, die Herausgeber zu erreichen, während sie sicher bleiben?
Der einfache Dispatcher verfügt über einen automatischen Filterzulassungsmechanismus. Sie müssen ein AEM-Paket installieren und dann die Dispatcher so konfigurieren, dass sie auf diese Paketseite verweist. Unter hier finden Sie das AEM-Paket.
Dispatcher hat einen Konfigurationsabschnitt in seiner Farm-Datei:
/vanity_urls { /url "/libs/granite/dispatcher/content/vanityUrls.html"
/file "/tmp/vanity_urls" /delay 300 }
Diese Konfiguration weist den Dispatcher an, diese URL aus seiner AEM-Instanz abzurufen, die alle 300 Sekunden vorgestellt wird, um die Liste der Elemente abzurufen, die wir durchlassen möchten.
Er speichert seinen Cache der Antwort im /file-Argument, also in diesem Beispiel /tmp/vanity_urls
Wenn Sie also die AEM-Instanz am URI besuchen, sehen Sie, was sie abruft:
Es ist eine sehr einfache Liste.
Regeln als Vanity-Regeln umschreiben
Warum sollten wir die Verwendung von Neuschreibungsregeln anstelle des Standardmechanismus erwähnen, der wie oben beschrieben in AEM integriert ist?
Einfach erklärt, Probleme mit Namespaces, Leistung und Logik auf höherer Ebene, die besser verarbeitet werden können.
Sehen wir uns ein Beispiel für den Vanity-Eintrag /aboutus seinen Inhalt an, /content/we-retail/us/en/about-us.html Sie dazu das mod_rewrite-Modul von Apache verwenden.
RewriteRule /aboutus /content/we-retail/us/en/about-us.html PT,L,NC
Diese Regel sucht nach dem Vanity-/aboutus und ruft den vollständigen Pfad vom Renderer mit dem PT-Flag ab (Pass Through).
Außerdem wird die Verarbeitung aller anderen Regeln, die ich markiere (Letzte), eingestellt, was bedeutet, dass es nicht eine riesige Liste von Regeln durchlaufen muss, wie es bei der JCR-Auflösung der Fall sein muss.
Diese beiden Elemente dieser Methode erfordern nicht nur keine Proxys für die Anfrage und warten, bis der AEM-Herausgeber reagiert, sondern sorgen auch für eine deutlich höhere Leistung.
Dann ist das Sahnehäubchen hier die NC-Markierung (keine Unterscheidung zwischen Groß- und Kleinschreibung). Das bedeutet, wenn Sie die URL mit /Aboutus umgehen, anstatt zu /aboutus, funktioniert sie weiterhin und ermöglicht das Abrufen der richtigen Seite.
Um eine Neuschreibungsregel zu erstellen, erstellen Sie eine Konfigurationsdatei in der Dispatcher (Beispiel: /etc/httpd/conf.d/rewrites/examplevanity_rewrite.rules) und schließen Sie sie in die .vhost ein, die die Domain verarbeitet, für die diese Vanity-URLs angewendet werden müssen.
Im Folgenden finden Sie ein Beispiel für ein Codefragment des darin enthaltenen Includes:
/etc/httpd/conf.d/enabled_vhosts/we-retail.vhost
VirtualHost *:80 ServerName weretail.com ServerAlias
www.weretail.com ........ SNIP ........ IfModule mod_rewrite.c
ReWriteEngine on LogLevel warn rewrite:info
Include /etc/httpd/conf.d/rewrites/examplevanity_rewrite.rules / IfModule
........ SNIP ......../VirtualHost
Welche Methode und wo ist sie anzuwenden?
A. Die Verwendung von AEM zur Steuerung von Vanity-Einträgen hat die folgenden Vorteile:
- Autoren können sie direkt erstellen
- Sie sind mit dem Inhalt verknüpft und können mit dem Inhalt zusammengefasst werden
B. Die Verwendung von mod_rewrite zur Kontrolle von Vanity-Einträgen hat die folgenden Vorteile:
- Schnellere Inhaltsauflösung
- Näher am Rand von Inhaltsanfragen für Endbenutzer
- Mehr Erweiterbarkeit und Optionen zur Steuerung der Inhaltszuordnung unter anderen Bedingungen
- Kann Groß-/Kleinschreibung ignorieren
C. Verwenden Sie beide Methoden, aber hier sind die Ratschläge und Kriterien, nach denen Sie sich richten sollten, wenn:
- Wenn Vanity temporär ist und nur geringen Traffic plant, verwenden Sie die integrierte AEM-Funktion
- Wenn die Vanity-Instanz ein wichtiger Endpunkt ist, der sich nicht oft ändert und häufig verwendet wird, verwenden Sie eine
mod_rewrite. - Wenn der Vanity-Namespace (zum Beispiel:
/aboutus) für viele Marken in derselben AEM-Instanz wiederverwendet werden muss, sollten Sie die Rewrite-Regeln verwenden.
Hinweis: Wenn Sie die AEM-Vanity-Funktion verwenden und den Namespace vermeiden möchten, können Sie eine Namenskonvention festlegen. Verwenden von Vanity-URLs, die wie /brand1/aboutus, brand2/aboutus, brand3/aboutus verschachtelt sind