AEM ne parvient pas à rediriger /robots.txt via la règle de réécriture Apache
Lorsqu’Apache est configuré pour réécrire des /robots.txt vers un chemin de gestion des ressources numériques dans AEM, mais que la requête renvoie toujours un 404, cela est probablement dû à la manière dont Dispatcher gère les URL. Cet article explique comment le paramètre DispatcherUseProcessedURL affecte le comportement de réécriture et comment sa mise à jour résout l’échec de redirection.
Description description
Environnement
Adobe Experience Manager (AEM) On-Premise, v6.5
Problème/Symptômes
- Une règle de réécriture est définie pour rediriger le
/robots.txtvers/content/dam/xxxx/robots.txt. La ressource existe et est accessible directement. - Les règles d’autorisation Dispatcher permettent d’accéder à la fois à
/robots.txtet à/content/dam/xxxx/robots.txt. Malgré cela, l’accès à/robots.txtrenvoie une erreur 404.
Cause première
La configuration Apache comprend la règle de réécriture suivante :
RewriteRule /robots.txt$ /content/dam/xxxx/robots.txt [ PT,L]
Cette règle réécrit correctement les requêtes de /robots.txt dans le chemin d’accès de la gestion des ressources numériques. Cependant, le Dispatcher est défini avec :
DispatcherUseProcessedURL 0
Avec ce paramètre, Dispatcher ignore l’URL réécrite et utilise à la place l’URI de requête d’origine. Par conséquent, il ne reconnaît pas le chemin réécrit et renvoie une erreur 404.
Selon le document Installation de Dispatcher, définir DispatcherUseProcessedURL sur 1 garantit que Dispatcher utilise l’URL traitée après mod_rewrite, ce qui permet à la redirection de fonctionner comme prévu.
Résolution resolution
Pour résoudre le problème :
- Ouvrez votre fichier de configuration Apache Dispatcher, généralement nommé
httpd-dispatcher.conf. - Recherchez la directive
DispatcherUseProcessedURL. - Modifiez sa valeur de 0 à 1 :
DispatcherUseProcessedURL 1
- Enregistrez le fichier et redémarrez Apache pour que les modifications soient prises en compte.
Cette modification garantit que le Dispatcher utilise l’URL réécrite (/content/dam/xxxx/robots.txt) au lieu de la requête d’origine (/robots.txt), ce qui permet à la redirection de fonctionner comme prévu.
Lecture connexe
Liste de contrôle de sécurité de Dispatcher dans le guide AEM Dispatcher