#AEM

Czym są reguły przepisywania AEM Dispatcher?

Spis treści

Czym są reguły przepisywania AEM Dispatcher? Nasz certyfikowany ekspert AEM przedstawia 5 zaawansowanych sposobów wykorzystania Dispatchera w środowisku produkcyjnym i deweloperskim.

Teraz, gdy wiesz już, jak dostosować podstawowe parametry dyspozytora, nadszedł czas, aby zagłębić się w ustawienia zaawansowane. Te ustawienia będą niezbędne do precyzyjnego dostrojenia środowiska produkcyjnego, a także przydatne podczas procesu deweloperskiego.

Poniżej opisuję kilka przydatnych narzędzi do zaawansowanego wykorzystania dyspozytora:

  • narzędzia statycznych serwerów WWW
    • moduł przepisywania
  • narzędzia AEM do mapowań
    • drzewo mapowań repozytorium /etc/map
    • Interfejs ResourceProvider

Moduł przepisywania

Moduł przepisywania można włączyć, odkomentowując następny wiersz w pliku httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

Początkowe ustawienia modułu przepisywania mogą wyglądać następująco:

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

Oto prosty przykład użycia modułu przepisywania:

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

Ta reguła przepisywania zapewnia zewnętrzne przekierowanie.

Szczegółowa i przydatna dokumentacja: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Drzewo mapowań repozytorium /etc/map

Mapowanie zasobów służy do definiowania przekierowań, adresów URL vanity i wirtualnych hostów dla AEM:

  • /etc/map – drzewo mapowań zasobów;
  • /etc/map/http – mapowania zasobów dla żądań http.

Definicje mapowań Twojej instancji AEM znajdują się pod adresem: http://host:port/system/console/jcrresolver

Przykład: mapowanie, które poprzedza każde żądanie do http://localhost:4503 prefikiem /content:

  1. Utwórz węzeł w /etc/map/http typu “sling:Mapping” o nazwie “localhost_any”;
  2. Dodaj właściwości do tego węzła:
    • Nazwa “sling:match”, typ “String”, wartość “localhost.4503/”;
    • Nazwa “sling:internalRedirect”, typ “String”, wartość “/content/”.

To mapowanie obsłuży żądanie takie jak http://localhost:4503/geometrixx/en/products.html tak, jakby żądano http://localhost:4503/content/geometrixx/en/products.html. Ten przykład zakłóca żądania do clientlibs i innych zasobów umieszczonych poza drzewem zasobów /content.

Szczegółowa i przydatna dokumentacja:

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

Interfejs ResourceProvider

Możesz użyć interfejsu ResourceProvider, aby tworzyć własne drzewa zasobów.

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

Możesz ustawić ścieżki główne dla swojej implementacji ResourceProvider:

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

Szczegółowa i przydatna dokumentacja: https://sling.apache.org/documentation/the-sling-engine/resources.html

Podsumowanie

Trzy wspomniane narzędzia zapewniają dodatkowe usprawnienia podczas korzystania z dyspozytora:

  • Moduł przepisywania Httpd;
  • Drzewo mapowań AEM;
  • Interfejs ResourceProvider.

Przyjrzeliśmy się tym narzędziom tylko pobieżnie. Jeśli chcesz ich efektywnie używać, musisz zapoznać się ze szczegółową dokumentacją dla każdego z nich.

FAQ

Jak zrestartować dyspozytora w AEM?

AEM Dispatcher to moduł działający na serwerach WWW klasy korporacyjnej. Na przykład, na Apache httpd 2.4.x, do jego ponownego uruchomienia można użyć następującego polecenia: sudo /etc/init.d/apache2 restart.

Jaka jest różnica między przepisywaniem a przekierowaniem?

Manipulacje adresami URL, takie jak przepisywanie (rewrite) i przekierowania (redirect), mogą być używane do ukrywania wewnętrznej struktury strony internetowej, czynienia adresów URL przyjaznymi dla użytkownika oraz obsługi starszych adresów URL. Przy przepisywaniu, serwer modyfikuje żądany adres URL na bieżąco, w oparciu o zdefiniowane wcześniej reguły, zanim zwróci zawartość powiązaną ze zmodyfikowanym adresem URL odwiedzającemu. Oryginalny adres URL pozostaje widoczny dla odwiedzającego. Przy przekierowaniu, serwer wysyła odpowiedź do przeglądarki odwiedzającego, instruując ją, aby zażądała innego adresu URL. Przeglądarka następnie żąda nowego adresu URL, a odwiedzający widzi stronę powiązaną z nowym adresem URL.

Czym jest mapa ETC w AEM?

Folder /etc/map/ w AEM służy do tworzenia definicji wewnętrznego mapowania zasobów. Na przykład, podfolder /etc/map/http zawiera mapowania dla protokołu HTTP, które umożliwiają definiowanie przekierowań, adresów vanity URL oraz wirtualnych hostów dla AEM.

Jak odbywa się skracanie adresów URL w AEM?

Skracanie adresów URL można wykonać za pomocą Sling Resource Resolver Factory, jeśli potrzebne są proste reguły, takie jak usuwanie licznych podfolderów z ciągu URL, lub za pomocą Sling Mapping dla bardziej złożonych scenariuszy.

Jak działa rozwiązywanie adresów Sling w AEM?

Apache Sling jest używany do dopasowywania przychodzących adresów URL żądań do konkretnych fragmentów treści w repozytorium JCR. Repozytorium ma strukturę hierarchiczną, a każdy fragment treści w nim posiada długą i unikalną ścieżkę zasobu. Aby określić pasującą treść, Apache Sling stosuje zestaw predefiniowanych reguł i filtrów typów zasobów.

    Porozmawiajmy o Twoim projekcie!
    / 2
    Wszystkie pola oznaczone gwiazdką są obowiązkowe
    Wszystkie pola oznaczone gwiazdką są obowiązkowe
    All fields marked with an asterisk are required
    All fields marked with an asterisk are required
    Check the box
    Success!
    We will contact you by email