AEM kann /robots.txt nicht über eine Apache-Rewrite-Regel umleiten
Wenn Apache so konfiguriert ist, dass /robots.txt in einen DAM-Pfad in AEM umgeschrieben werden, die Anfrage jedoch weiterhin ein 404 zurückgibt, hängt dies wahrscheinlich damit zusammen, wie Dispatcher URLs verarbeitet. In diesem Artikel wird erläutert, wie sich die DispatcherUseProcessedURL auf das Neuschreibungsverhalten auswirkt und wie durch Aktualisieren der Einstellung der Umleitungsfehler behoben wird.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) On-Premise, v6.5
Problem/Symptome
- Eine Rewrite-Regel ist festgelegt, um
/robots.txtan/content/dam/xxxx/robots.txtumzuleiten. Das Asset ist vorhanden und direkt zugänglich. - Dispatcher-Regeln erlauben den Zugriff auf
/robots.txtund/content/dam/xxxx/robots.txt. Trotzdem wird beim Zugriff auf/robots.txtein 404-Fehler zurückgegeben.
Grundursache
Die Apache-Konfiguration enthält die folgende Rewrite-Regel:
RewriteRule /robots.txt$ /content/dam/xxxx/robots.txt [ PT,L]
Diese Regel schreibt Anfragen zur /robots.txt korrekt in den DAM-Pfad um. Der Dispatcher ist jedoch wie folgt festgelegt:
DispatcherUseProcessedURL 0
Bei dieser Einstellung ignoriert Dispatcher die neu geschriebene URL und verwendet stattdessen den ursprünglichen Anfrage-URI. Daher erkennt sie den umgeschriebenen Pfad nicht und gibt einen 404-Fehler zurück.
Gemäß dem Dokument Installieren von Dispatcher wird durch Festlegen von DispatcherUseProcessedURL auf 1 sichergestellt, dass Dispatcher die verarbeitete URL nach dem mod_rewrite verwendet, sodass die Weiterleitung erwartungsgemäß funktioniert.
Auflösung resolution
Beheben des Problems:
- Öffnen Sie Ihre Apache Dispatcher-Konfigurationsdatei, die normalerweise
httpd-dispatcher.confheißt. - Suchen Sie die
DispatcherUseProcessedURL. - Ändern Sie den Wert von 0 auf 1:
DispatcherUseProcessedURL 1
- Speichern Sie die Datei und starten Sie Apache neu, damit die Änderungen wirksam werden.
Durch diese Änderung wird sichergestellt, dass die Dispatcher die umgeschriebene URL (/content/dam/xxxx/robots.txt) anstelle der ursprünglichen Anfrage (/robots.txt) verwendet, sodass die Umleitung erwartungsgemäß funktioniert.
Verwandtes Lesen
Die Dispatcher-Sicherheitscheckliste im AEM Dispatcher-Handbuch