Was sind AEM Dispatcher Rewrite Rules? Unser AEM Certified Experte zeigt die Top 5 der erweiterten Einsatzmöglichkeiten des Dispatchers für Produktion und Entwicklung auf.
Nachdem Sie nun wissen, wie die grundlegenden Parameter des Dispatchers angepasst werden, ist es an der Zeit, tief in die erweiterten Einstellungen einzutauchen. Diese Einstellungen sind notwendig, um die Produktionsumgebung zu optimieren, und werden auch während des Entwicklungsprozesses nützlich sein.
Im Folgenden beschreibe ich einige nützliche Tools für die erweiterte Nutzung des Dispatchers:
- Tools für statische Webserver
- Rewrite-Modul
- AEM Tools für Mappings
- Repository-Mapping-Baum /etc/map
- ResourceProvider-Schnittstelle
Rewrite-Modul
Sie können das Rewrite-Modul aktivieren, indem Sie die nächste Zeile in Ihrer httpd.conf-Datei entkommentieren:
LoadModule rewrite_module modules/mod_rewrite.so
Erste Einstellungen für das Rewrite-Modul könnten so aussehen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite.log"
RewriteLogLevel 9
# your rule 1
# your rule 2
…
# your rule n
</IfModule>
Hier ist ein einfaches Beispiel für die Verwendung des Rewrite-Moduls:
RewriteRule ^/en(.*)\.html$ /content/geometrixx/en$1.html [R]
Diese Rewrite-Regel ermöglicht eine externe Weiterleitung.
Detaillierte und nützliche Dokumentation: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
Repository-Mapping-Baum /etc/map
Ressourcen-Mapping wird verwendet, um Weiterleitungen, Vanity-URLs und virtuelle Hosts für AEM zu definieren:
- /etc/map – Ressourcen-Mapping-Baum;
- /etc/map/http – Ressourcen-Mappings für HTTP-Anfragen.
Die Mapping-Definitionen Ihrer AEM-Instanz finden Sie unter: http://host:port/system/console/jcrresolver
Beispiel: Ein Mapping, das jede Anfrage an http://localhost:4503 mit dem Präfix /content versieht:
- Erstellen Sie einen Knoten unter /etc/map/http vom Typ “sling:Mapping” mit dem Namen “localhost_any”;
- Fügen Sie diesem Knoten Eigenschaften hinzu:
- Name “sling:match”, Typ “String”, Wert “localhost.4503/”;
- Name “sling:internalRedirect”, Typ “String”, Wert “/content/”.
Dieses Mapping verarbeitet eine Anfrage wie http://localhost:4503/geometrixx/en/products.html, als ob http://localhost:4503/content/geometrixx/en/products.html angefordert würde. Dieses Beispiel unterbricht Anfragen an Clientlibs und andere Ressourcen, die außerhalb des /content-Ressourcenbaums platziert sind.
Detaillierte und nützliche Dokumentation:
https://docs.adobe.com/docs/en/cq/5-6-1/deploying/resource_mapping.html
https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html
ResourceProvider-Schnittstelle
Sie können die ResourceProvider-Schnittstelle verwenden, um Ihre eigenen Ressourcenbäume zu erstellen.
public interface ResourceProvider {
Resource getResource(ResourceResolver var1, String var2);
Iterator<Resource> listChildren(Resource var1);
}
Sie können Stammverzeichnisse für Ihre Implementierung des ResourceProviders festlegen:
@Properties({
@Property(
label = "Root paths",
description = "Root paths this Sling Resource Provider will respond to",
name = ResourceProvider.ROOTS,
value = {"/content/mount/samples"})
})
Detaillierte und nützliche Dokumentation: https://sling.apache.org/documentation/the-sling-engine/resources.html
Zusammenfassung
Die oben genannten drei Tools bieten zusätzliche Verbesserungen bei der Verwendung des Dispatchers:
- Httpd Rewrite-Modul;
- AEM-Mapping-Baum;
- ResourceProvider-Schnittstelle.
Wir haben diese Tools nur kurz betrachtet. Wenn Sie sie effektiv nutzen möchten, müssen Sie die entsprechende detaillierte Dokumentation für jedes Tool studieren.
FAQ
Wie startet man den Dispatcher in AEM neu?
Der AEM Dispatcher ist ein Modul, das auf Webservern der Enterprise-Klasse läuft. Zum Beispiel kann auf Apache httpd 2.4.x der folgende Befehl verwendet werden, um ihn neu zu starten: sudo /etc/init.d/apache2 restart.
Was ist der Unterschied zwischen Rewrite und Redirect?
URL-Manipulationen wie Umschreibungen (Rewrites) und Weiterleitungen (Redirects) können verwendet werden, um die interne Struktur einer Website zu verbergen, URLs benutzerfreundlich zu gestalten und veraltete URLs zu verwalten. Bei der Umschreibung (Rewriting) ändert der Server die angeforderte URL sofort basierend auf vordefinierten Regeln, bevor er dem Besucher den mit der geänderten URL verknüpften Inhalt zurückgibt. Die ursprüngliche URL bleibt für den Besucher sichtbar. Bei der Weiterleitung (Redirecting) sendet der Server eine Antwort an den Browser des Besuchers, die ihn anweist, eine andere URL anzufordern. Der Browser fordert dann die neue URL an, und der Besucher sieht die mit der neuen URL verknüpfte Seite.
Was ist die ETC-Map in AEM?
Der Ordner /etc/map/ in AEM wird verwendet, um Definitionen für die interne Ressourcen-Zuordnung zu erstellen. Zum Beispiel enthält der Unterordner /etc/map/http Zuordnungen für das HTTP-Protokoll, die das Definieren von Weiterleitungen, Vanity-URLs und virtuellen Hosts für AEM ermöglichen.
Wie wird URL-Verkürzung in AEM durchgeführt?
Die URL-Verkürzung kann mit der Sling Resource Resolver Factory erfolgen, wenn Sie einfache Regeln anwenden müssen, wie das Entfernen zahlreicher Unterordner aus der URL-Zeichenfolge, oder mit Sling Mapping für komplexere Szenarien.
Wie funktioniert die Sling-Auflösung in AEM?
Apache Sling wird verwendet, um eingehende Anfrage-URLs mit bestimmten Inhaltsteilen im JCR-Repository abzugleichen. Das Repository hat eine hierarchische Struktur, und jeder Inhaltsteil darin hat einen langen und einzigartigen Ressourcenpfad. Um den passenden Inhalt zu bestimmen, wendet Apache Sling eine Reihe vordefinierter Regeln und Ressourcentypfilter an.