Frage

CQ5 bietet URL-Mapping-Funktionalität über Apache Sling. Eine der wichtigsten Voraussetzungen ist die Möglichkeit SEO-optimierte URLs zu ermöglichen.
In Verbindung mit Dispatcher-Caching gibt es einen Konflikt zwischen zuvor zwischengespeicherten Html-Ressourcen und der Dispatcher-Flush-Anforderung. Wenn statfileslevel auf einen Wert> 0 konfiguriert ist, stimmt der Speicherort der .stat Dateien, die zur Ermittlung der Cache-Gültigkeit verwendet werden, nicht mit tatsächlich zwischengespeicherten Dateien überein.

Beispiel:

  • Anforderung http://www.mydomain.com/geometrixx/en/company.html
  • zwischengespeichert vom Dispatcher unter <docroot>/geometrixx/en/company.html
  • /content/geometrixx/en/company wird von der Erstellungsinstanz wiederholt
  • Der Dispatcher-Entleerungsagent fordert, dass /content/geometrixx/en/company vom Dispatcher-Zwischenspeicher geleert wird
  • Dispatchermodul versucht, Ressourcen auf <docroot>/content/geometrixx/en/company zu leeren.* und findet nichts -> Zwischenspeicher nicht geleert

Antwort, Auflösung

Das eigentliche Problem liegt darin, dass die Dispatcher-Entleerungsanfrage den absoluten Pfad einer Ressource sendet, um als Ergebnis einer Replikation des Dispatcher-Zwischenspeichers geleert zu werden. Um diese Fehlanpassung zu beheben, empfiehlt es sich, zugeordnete URLs zu Ihrem ursprünglichen absoluten Pfadformular auf Webserver-Ebene neu zu schreiben, wodurch das Dispatcher-Modul Zwischenspeichereinträge einheitlich auf einer Datensystem-Ebene liest, schreibt und leert. Dies gilt auch für das Lesen und Schreiben von .stat-Dateien.

Wenn „Apache HTTP-Server“ als Webserver eingesetzt wird, bietet mod_rewrite alle notwendigen Funktionen, um das Neuschreiben zu erzielen.

Das folgende Beispiel zeigt, wie das Neuschreiben mit dem mod_rewrite-Modul von Apache konfiguriert wird. Das Beispiel basiert auf:

  • Zuordnung eingehender Anfragen an die Domäne www.geometrixx.de zu /content/geometrixx/de
<VirtualHost *:80> ServerName www.geometrixx.de RewriteEngine On RewriteRule ^/(.*\.html)$ /content/geometrixx/de/$1 [PT] <Directory /> <IfModule disp_apache2.c> SetHandler dispatcher-handler </IfModule> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost> 

Gilt für

CQ5.2.x, CQ5.3

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie