Vanity-URLs für Dispatcher | AEM
In diesem Dokument erfahren Sie, wie Adobe Experience Manager mit Vanity-URLs und zusätzlichen Techniken umgeht, z. B. mit Umschreibungsregeln, 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 Sie Inhalt haben, der in einer sinnvollen Ordnerstruktur lebt, wird er nicht immer in einer URL gespeichert, die einfach zu referenzieren ist. Vanity-URLs sind wie Tastaturbefehle. Kürzere oder eindeutige URLs, die auf den tatsächlichen Inhalt verweisen.
Ein Beispiel: /aboutus zeigt auf /content/we-retail/us/en/about-us.html
AEM Autoren haben die Möglichkeit, Eigenschaften von Vanity-URLs für Inhalte in AEM festzulegen und zu veröffentlichen.
Damit diese Funktion funktioniert, müssen Sie die Dispatcher-Filter anpassen, damit die Vanity durchlaufen wird. Dies ist mit der Anpassung der Dispatcher-Konfigurationsdateien in der Geschwindigkeit nicht sinnvoll, die Autoren zum Einrichten dieser Vanity-Seiteneinträge benötigen würden.
Aus diesem Grund verfügt das Dispatcher-Modul über eine Funktion, mit der automatisch alles zugelassen wird, was in der Inhaltsstruktur als Vanity aufgeführt ist.
Auflösung resolution
Funktionsweise
Erstellen von Vanity-URLs
Der Autor besucht eine Seite in AEM, besucht die Seiteneigenschaften und fügt die Einträge in den Vanity-URL-Abschnitt ein.
Nachdem sie ihre Änderungen gespeichert und die Seite aktiviert haben, wird dieser Seite nun die Vanity zugewiesen.
Touch-Benutzeroberfläche:
Classic Content Finder:
Hinweis: Bitte verstehen Sie, dass dies sehr anfällig für Namespace-Probleme ist. Vanity-Einträge sind global für alle Seiten, dies ist nur einer der Mängel, für die Sie Umgehungen planen müssen. Wir werden einige davon später erläutern.
Auflösen/Zuordnen der Ressource:
Jeder Vanity-Eintrag ist ein Sling-Map-Eintrag für eine interne Umleitung. Diese Maps sind in der Felix-Konsole (/system/console/jcrresolver
) der AEM sichtbar.
Im Folgenden finden Sie einen Screenshot eines Map-Eintrags, der von einem Vanity-Eintrag erstellt wurde:
Wenn wir die AEM-Instanz auffordern, /aboutus
zu besuchen, wird sie in /content/we-retail/us/en/about-us.html
aufgelöst
Automatische Dispatcher-Filter:
Die Dispatcher in einem sicheren Status filtert Anforderungen im Pfad / über die 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 nicht Pfade wie /system
usw.
Hier sind die Rumpf-, Vanity-URLs im Basisordner von /. Wie können wir also zulassen, dass sie die Herausgeber erreichen, während sie sicher bleiben?
Der einfache Dispatcher verfügt über einen automatischen Filterallow-Mechanismus. Sie müssen ein AEM-Paket installieren und dann den Dispatcher so konfigurieren, dass er auf diese Paketseite verweist. Besuchen Sie hier für das AEM Paket.
Dispatcher enthält einen Konfigurationsabschnitt in der Farm-Datei:
/vanity_urls { /url "/libs/granite/dispatcher/content/vanityUrls.html"
/file "/tmp/vanity_urls" /delay 300 }
Diese Konfiguration weist die Dispatcher an, diese URL alle 300 Sekunden von ihrer AEM-Instanz abzurufen, um die Liste der Elemente abzurufen, die wir zulassen möchten.
Es speichert seinen Cache der Antwort im /file-Argument, sodass in diesem Beispiel /tmp/vanity_urls
Wenn Sie also die AEM-Instanz unter dem URI besuchen, sehen Sie, was sie abruft:
Es ist eine supereinfache Liste.
Regeln als Vanity-Regeln neu schreiben
Warum sollten wir die Verwendung von Neuschreibungsregeln anstelle des Standardmechanismus erwähnen, der wie oben beschrieben in AEM integriert wurde?
Erläuterung: Namespaces, Leistung und Logik auf höherer Ebene, die besser verarbeitet werden können.
Sehen wir uns dazu ein Beispiel für den Vanity-Eintrag /aboutus
an, um seinen Inhalt /content/we-retail/us/en/about-us.html
mit dem Apache-Modul mod_rewrite
zu bearbeiten.
RewriteRule /aboutus /content/we-retail/us/en/about-us.html PT,L,NC
Diese Regel sucht nach der Vanity /aboutus
und ruft den vollständigen Pfad mit der PT-Markierung (Pass Through) vom Renderer ab.
Es wird auch die Verarbeitung aller anderen Regeln L Flag (Letzte) stoppen, was bedeutet, dass es nicht auf einer riesigen Liste von Regeln wie JCR Resolving zu durchlaufen hat.
Diese beiden Elemente dieser Methode erfordern nicht nur die Proxy-Anforderung, sondern auch die Wartezeit, bis der AEM Publisher auf diese beiden Elemente reagiert.
Dann ist das Eisen auf dem Kuchen hier das NC-Flag (Keine Groß-/Kleinschreibung), d. h. wenn Sie die URL mit /Aboutus
anstelle von /aboutus
durchsetzen, funktioniert es weiterhin und lässt die richtige Seite abrufen.
Um eine Umschreibungsregel zu erstellen, erstellen Sie eine Konfigurationsdatei auf der Dispatcher (Beispiel: /etc/httpd/conf.d/rewrites/examplevanity_rewrite.rules
) und fügen Sie sie in die Datei .vhost
ein, die die Domäne verarbeitet, auf die diese Vanity-URLs angewendet werden müssen.
Im Folgenden finden Sie ein Beispiel für einen Code-Snippet der Include-Komponente:
/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 soll sie angewendet werden?
A. Die Verwendung von AEM zur Steuerung von Vanity-Einträgen bietet folgende Vorteile:
- Autoren können sie direkt erstellen
- Sie leben mit dem Inhalt und können mit dem Inhalt gepackt werden
B. Die Verwendung von mod_rewrite
zur Steuerung von Vanity-Einträgen bietet folgende Vorteile:
- Schnellere Auflösung von Inhalten
- Näheres zu den Inhaltsanforderungen von Endbenutzern
- Mehr Erweiterbarkeit und Optionen zur Steuerung der Inhaltszuordnung unter anderen Bedingungen
- Kann nicht von der Groß-/Kleinschreibung abhängig sein
C. Verwenden Sie beide Methoden, aber hier finden Sie die Ratschläge und Kriterien, die Sie verwenden sollten, wenn:
- Wenn die Vanity temporär ist und wenig Traffic geplant ist, verwenden Sie die AEM integrierte Funktion .
- Wenn es sich bei der Vanity um einen Heftendpunkt handelt, der sich nicht häufig ändert und häufig verwendet wird, verwenden Sie eine
mod_rewrite
-Regel. - Wenn der Vanity-Namespace (z. B.
/aboutus
) für viele Marken auf derselben AEM-Instanz wiederverwendet werden muss, verwenden Sie Neuschreibungsregeln.
Hinweis: Wenn Sie die AEM Vanity-Funktion verwenden und Namespace vermeiden möchten, können Sie eine Namenskonvention vornehmen. Verwenden von Vanity-URLs, die wie /brand1/aboutus, brand2/aboutus, brand3/aboutus
verschachtelt sind