#AEM

Que sont les règles de réécriture d’AEM Dispatcher ?

Sommaire

Que sont les règles de réécriture du Dispatcher AEM ? Notre expert certifié AEM met en lumière les 5 meilleures façons avancées d’utiliser le Dispatcher pour la production et le développement.

Maintenant que vous savez comment ajuster les paramètres de base du Dispatcher, il est temps de plonger dans les réglages avancés. Ces réglages vous seront nécessaires pour affiner l’environnement de production et seront également utiles pendant le processus de développement.

Ci-dessous, je décris quelques outils utiles pour l’utilisation avancée du Dispatcher :

  • outils de serveurs web statiques
    • module de réécriture
  • outils AEM pour les mappages
    • arbre des mappages de référentiel /etc/map
    • Interface ResourceProvider

Module de réécriture

Vous pouvez activer le module de réécriture en décommentant la ligne suivante dans votre fichier httpd.conf :

LoadModule rewrite_module modules/mod_rewrite.so

Les paramètres initiaux du module de réécriture peuvent ressembler à ceci :

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteLog "logs/rewrite.log"
    RewriteLogLevel 9
#    your rule 1
#    your rule 2
    …
#    your rule n
</IfModule>

Voici un exemple simple d’utilisation du module de réécriture :

RewriteRule ^/en(.*)\.html$ /content/geometrixx/en$1.html [R]

Cette règle de réécriture fournit une redirection externe.

Documentation détaillée et utile : http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Arbre des mappages de référentiel /etc/map

Le mappage de ressources est utilisé pour définir les redirections, les URL conviviales (vanity URLs) et les hôtes virtuels pour AEM :

  • /etc/map – arbre des mappages de ressources ;
  • /etc/map/http – mappages de ressources pour les requêtes http.

Les définitions de mappages de votre instance AEM se trouvent à l’adresse : http://host:port/system/console/jcrresolver

Exemple : mappage qui préfixe toute requête vers http://localhost:4503 avec le préfixe /content :

  1. Créez un nœud sous /etc/map/http de type “sling:Mapping” avec le nom “localhost_any” ;
  2. Ajoutez des propriétés à ce nœud :
    • Nom “sling:match”, type “String”, valeur “localhost.4503/” ;
    • Nom “sling:internalRedirect”, type “String”, valeur “/content/”.

Ce mappage gérera une requête telle que http://localhost:4503/geometrixx/en/products.html comme si http://localhost:4503/content/geometrixx/en/products.html était demandée. Cet exemple rompt les requêtes vers les clientlibs et vers d’autres ressources placées en dehors de l’arborescence des ressources de contenu.

Documentation détaillée et utile :

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

Interface ResourceProvider

Vous pouvez utiliser l’interface ResourceProvider pour créer vos propres arborescences de ressources.

public interface ResourceProvider {
    Resource getResource(ResourceResolver var1, String var2);
    Iterator<Resource> listChildren(Resource var1);
}

Vous pouvez définir des chemins racine pour votre implémentation du ResourceProvider :

@Properties({
       @Property(
               label = "Root paths",
               description = "Root paths this Sling Resource Provider will respond to",
               name = ResourceProvider.ROOTS,
               value = {"/content/mount/samples"})
})

Documentation détaillée et utile : https://sling.apache.org/documentation/the-sling-engine/resources.html

Résumé

Les trois outils mentionnés ci-dessus apportent des améliorations supplémentaires lors de l’utilisation du dispatcher :

  • Module de réécriture Httpd ;
  • Arborescence des mappages AEM ;
  • Interface ResourceProvider.

Nous n’avons fait qu’un bref aperçu de ces outils. Si vous souhaitez les utiliser efficacement, vous devez consulter la documentation détaillée correspondante pour chaque outil.

FAQ

Comment redémarrer le dispatcher dans AEM ?

Le Dispatcher AEM est un module qui s’exécute sur des serveurs web d’entreprise. Par exemple, sur Apache httpd 2.4.x, la commande suivante peut être utilisée pour le redémarrer : sudo /etc/init.d/apache2 restart.

Quelle est la différence entre la réécriture et la redirection ?

Les manipulations d’URL, telles que les réécritures et les redirections, peuvent être utilisées pour masquer la structure interne d’un site web, rendre les URL conviviales et gérer les URL héritées. Avec la réécriture, le serveur modifie l’URL demandée à la volée, en fonction de règles prédéfinies, avant de renvoyer le contenu associé à l’URL modifiée au visiteur. L’URL d’origine reste visible pour le visiteur. Avec la redirection, le serveur envoie une réponse au navigateur du visiteur, lui indiquant de demander une URL différente. Le navigateur demande ensuite la nouvelle URL et le visiteur voit la page associée à cette nouvelle URL.

Qu’est-ce que la carte ETC dans AEM ?

Le dossier /etc/map/ dans AEM est utilisé pour créer des définitions de mappage de ressources internes. Par exemple, le sous-dossier /etc/map/http contient des mappages pour le protocole HTTP qui permettent de définir des redirections, des URL de vanité et des hôtes virtuels pour AEM.

Comment la réduction d’URL est-elle effectuée dans AEM ?

La réduction d’URL peut être effectuée en utilisant Sling Resource Resolver Factory si vous avez besoin d’appliquer des règles simples, telles que la suppression de nombreux sous-dossiers de la chaîne d’URL, ou en utilisant Sling Mapping pour des scénarios plus complexes.

Comment fonctionne la résolution Sling dans AEM ?

Apache Sling est utilisé pour faire correspondre les URL de requêtes entrantes à des éléments de contenu spécifiques dans le référentiel JCR. Le référentiel a une structure hiérarchique et chaque élément de contenu qu’il contient possède un chemin de ressource long et unique. Pour déterminer le contenu correspondant, Apache Sling applique un ensemble de règles prédéfinies et de filtres de type de ressource.

    Parlons de votre projet !
    / 2
    Tous les champs marqués d'un astérisque sont obligatoires
    Tous les champs marqués d'un astérisque sont obligatoires
    Tous les champs marqués d'un astérisque sont obligatoires
    Tous les champs marqués d'un astérisque sont obligatoires
    Cochez la case
    C'est réussi !
    Nous vous contacterons par e-mail