Pipeline-freie URL-Umleitungen pipeline-free-redirects

Aus verschiedenen Gründen schreiben Organisationen URLs so um, dass eine 301- oder 302-Umleitung erfolgt. Das bedeutet, dass der Browser zu einer anderen Seite umgeleitet wird.

Mögliche Szenarien sind etwa:

  • eine entfernte HTML-Seite, sodass Benutzende zu einer Ersatzseite (manchmal zur Startseite) weitergeleitet werden, anstatt den Fehler 404 Page Not Found zu sehen,
  • eine umbenannte HTML-Seite,
  • SEO-Optimierung.

AEM as a Cloud Service bietet mehrere Ansätze zur Implementierung Client-seitiger Umleitungen. Die in diesem Artikel beschriebene Strategie Pipeline-freier Umleitungen ist allerdings in folgenden Fällen eine gute Wahl:

  • Bei den Personen, die für die Umleitungen zuständig sind, handelt es sich um Business-Anwendende, denen die erforderlichen Zugriffsrechte zum Übertragen von Dateiänderungen an die Quell-Code-Verwaltung fehlen oder die nicht die Möglichkeit haben, eine Cloud Manager-Konfigurations-Pipeline auf Web-Ebene auszuführen.
  • Der Umfang reicht von wenigen bis hin zu Zehntausenden von Umleitungen.
  • Am besten geeignet ist die Option einer Benutzeroberfläche, die entweder als benutzerdefiniertes Projekt oder mit ACS Commons Redirect Map Manager oder ACS Commons Redirect Manager erstellt wird.

Kernstück dieser Funktion ist die Möglichkeit für AEM Apache/Dispatcher, eine oder mehrere Rewrite Map-Dateien zu laden (oder neu zu laden), die an einem bestimmten Speicherort im Publish-Repository abgelegt wurden (sodass sie von AEM Publish heruntergeladen werden können). Hierbei ist darauf hinzuweisen, dass die Art und Weise, wie die Dateien dorthin gelangen, außerhalb des Anwendungsbereichs dieser Funktion liegt. Sie können jedoch eine der folgenden Methoden in Betracht ziehen:

  • Aufnehmen der Rewrite-Zuordnung als Asset in der Autorenbenutzeroberfläche mit anschließender Veröffentlichung.
  • Installation des ACS Commons Rewrite Map Manager (mindestens Version 6.7.0), der eine Benutzeroberfläche zum Verwalten der URL-Zuordnungen enthält und auch die Rewrite-Zuordnungsdatei veröffentlichen kann.
  • Installieren von ACS Commons Rewrite Map Manager (mindestens Version 6.10.0), wobei eine Benutzeroberfläche zum Verwalten der URL-Zuordnungen enthalten ist und außerdem die Rewrite-Zuordnungsdatei veröffentlicht werden kann.
  • Volle Flexibilität durch Schreiben einer benutzerdefinierten Anwendung. Beispiel: eine Benutzeroberfläche oder Befehlszeilenschnittstelle zum Verwalten der URL-Zuordnungen oder alternativ ein Formular zum Hochladen einer Rewrite-Zuordnung, die dann AEM-APIs verwendet, um die Rewrite-Zuordnungsdatei zu veröffentlichen.
NOTE
Für diese Funktion ist die AEM-Version 18311 oder höher erforderlich.
NOTE
Die Verwendung von Redirect Map Manager durch diese Funktion erfordert ACS Commons Version 6.7.0 oder höher, während die Verwendung von Redirect Manager Version 6.10.0 oder höher erfordert.

Die Rewrite-Zuordnung rewrite-map

Die Rewrite-Zuordnung wird (im Falle einer Änderung) vom Apache HTTP-Server standardmäßig alle 300 Sekunden neu geladen (der Wert ist konfigurierbar). Das Dateiformat sollte dem in der Apache-Dokumentation beschriebenen RewriteMap-Dateiformat mit Nur-Text-Schlüssel-Wert-Zuordnung entsprechen.

Eine Datei mit dem Namen managed-rewrite-maps.yaml sollte erstellt werden, um den Speicherort der Rewrite-Zuordnungsdatei anzugeben; sie muss einmal mithilfe der Cloud Manager-Fullstack-Pipeline oder der Web-Ebenen-Pipeline bereitgestellt werden. Die Datei muss im Ordner src/opt-in Ihrer Dispatcher-Konfiguration erstellt werden. Achten Sie darauf, die Dateistruktur mit flexiblem Modus zu verwenden.

Sie können sie mit dem folgenden Muster konfigurieren:

maps:
- name: my.map
  path: <path-in-publish-repository>/redirectmap.txt

Wenn die Rewrite-Zuordnungsdatei beispielsweise dadurch platziert wird, dass Sie sie in AEM als Asset mit dem Namen mysite-redirectmap.txt aufnehmen und dann veröffentlichen, können Sie einen Ordner unter /content/dam angeben:

maps:
- name: my.map
  path: /content/dam/redirectmaps/mysite-redirectmap.txt

Anschließend müssen Sie in einer Apache-Konfigurationsdatei wie rewrites/rewrite.rules oder <yourfile>.vhost die durch die Eigenschaft „name“ referenzierte Zuordnungsdatei konfigurieren (my.map im obigen Beispiel). Nach dem Laden wird diese Zuordnungsdatei im lokalen Dispatcher-Speicher unter dem festen Speicherort gespeichert/tmp/rewrites/.

Die Anweisung RewriteMap sollte angeben, dass die Daten im DBM-Dateiformat (Database Manager) unter Verwendung des sdbm-Formats (einfacher DBM) gespeichert werden und der vollständige Dateipfad aus dem Präfix des Speicherorts und der Eigenschaft „name“ abgeleitet wird.

Der Rest der Konfiguration hängt vom Format der Datei redirectmap.txt ab. Das einfachste Format, zu sehen im folgenden Beispiel, ist eine 1:1-Zuordnung zwischen der ursprünglichen URL und der zugeordneten URL:

# RewriteMap from managed rewrite maps
RewriteMap map.foo dbm=sdbm:/tmp/rewrites/my.map
RewriteCond ${map.foo:$1} !=""
RewriteRule ^(.*)$ ${map.foo:$1|/} [L,R=301]

Überlegungen considerations

Beachten Sie dabei Folgendes:

  • Standardmäßig startet Apache beim Laden einer Rewrite-Zuordnung, ohne auf das Laden der vollständigen Zuorddnungsdatei(en) zu warten. Daher kann es, bis die vollständigen Zuordnungen geladen sind, vorübergehend zu Inkonsistenzen kommen. Diese Einstellung kann so geändert werden, dass Apache darauf wartet, dass der gesamte Zuordnungsinhalt geladen wird. Es dauert dann jedoch länger, bis Apache gestartet wird. Um dieses Verhalten so zu ändern, dass Apache wartet, fügen Sie wait:true zur Datei managed-rewrite-maps.yaml hinzu.
  • Um das Intervall zwischen den Ladevorgängen zu ändern, fügen Sie ttl: <integer> zur Datei managed-rewrite-maps.yaml hinzu. Beispiel: ttl: 120.
  • Apache hat eine Längenbeschränkung von 1024 für RewriteMap-Einzeleinträge.
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab