В соответствии с передовой практикой SEO лучше определить URL-адреса без расширений, чтобы повысить рейтинг. По умолчанию AEM позволяет расширению получать доступ к HTML-страницам и ожидать, что расширение страницы поймет и обслужит входящий запрос.

В этом руководстве объясняется подход к получению URL-адреса без расширения в Adobe Experience Manager (AEM).

Есть два шага

Конфигурации правил диспетчера (Apache)

- Удалить расширение .html из входящего URL-адреса с помощью /

- Добавьте .html при вызове издателя для URL-адреса, заканчивающегося на /

Включить конфигурацию etc/map в AEM

- Обратное сопоставление для перезаписи URL-адресов html (внутренних ссылок на страницы) без расширения.

- Прямое сопоставление для сопоставления входящего запроса с ресурсом

Конфигурации правил диспетчера (Apache)

Включите приведенные ниже конфигурации в файл виртуального хоста.

RewriteEngine включен

#Обработка целевой страницы
RewriteRule ^/$ /en/ [R=301,L]
#Маскирование пути /content/geometrixx-outdoors
RewriteRule ^/content/geometrixx-outdoors/ (.*)(\.html)?$ /$1 [NE,L,R=301]

#Замените .html на /
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^/(.*).html$ /$1/ [R=301,L,QSA]

#Добавить .html для этих URL, оканчивающихся на / перед отправкой издателю
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^/(.*)/$ /$1.html [PT,L, QSA]

Перейдите по следующей ссылке для получения подробной информации о включении правил PT в диспетчере (требуется дополнительная настройка) — https://www.albinsblog.com/2017/11/rewrite-rules-with-ptpass-through-flag-notwork-in- aem.html#.XtsmYjpKjb0

Включить настройку etc/map в AEM(Publisher)

Создайте узел с именем localhost.8080 (замените требуемым DNS и портом для веб-сайта — где я тестирую с моим локальным издателем AEM через экземпляр локального диспетчера, работающий на порту 8080) типа sling:Mapping в /etc/map /http или /etc/map/https в зависимости от протокола, используемого для доступа к веб-сайтам.

Добавьте свойство ниже к созданному узлу

sling:internalRedirect[] — /content/geometrixx-outdoors()

‹?xml version="1.0" encoding="UTF-8"?›
http://sling.apache.org/jcr/sling/1.0' xmlns:jcr=""http://www.jcp .org/jcr/1.0»'
jcr:primaryType=”sling:Mapping”
sling:internalRedirect=”[/content/geometrixx-outdoors]”›
‹redirect/›
‹reverse/›
‹/jcr:root›

Создайте узел «перенаправление» типа sling:Mapping под localhost.8080 — сопоставьте входящий запрос с путем к ресурсу AEM.

Добавьте следующие свойства

sling:internalRedirect[] — /content/geometrixx-outdoors/$1 , /$1
sling:match — (.+)$

‹?xml version="1.0" encoding="UTF-8"?›
http://sling.apache.org/jcr/sling/1.0' xmlns:jcr=""http://www.jcp .org/jcr/1.0»'
jcr:primaryType=”sling:Mapping”
sling:internalRedirect=”[/content/geometrixx-outdoors/$1,/$1]”
sling: match=”(.+)$”/›

Это поможет выполнить прямое сопоставление входящих URL-адресов с ресурсами с помощью sling, API resourceResolver.resolve() можно использовать, если требуется программное сопоставление.

Создайте узел с именем «reverse» типа sling: Mapping under localhost.8080 — Обратное сопоставление (сопоставьте путь к содержимому с сокращенными URL-адресами и URL-адресами без расширения)

sling:internalRedirect[] — /content/geometrixx-outdoors/(.*).html
sling:match — $1/

‹?xml version="1.0" encoding="UTF-8"?›
http://sling.apache.org/jcr/sling/1.0' xmlns:jcr=""http://www.jcp .org/jcr/1.0»'
jcr:primaryType=”sling:Mapping”
sling:internalRedirect=”[/content/geometrixx-outdoors/(.*).html]”
слинг:match="$1/"/›

Это поможет переписчику выполнить обратное сопоставление HTML-ссылок на страницах с сокращенными URL-адресами без расширения.

Конвейер переписывания вывода автоматически перезаписывает все HTML-ссылки на страницах в сокращенные URL-адреса без расширения на основе приведенной выше конфигурации. Если требуется программное сопоставление, можно использовать API resourceResolver.map().

Теперь браузер отображает URL-адрес без расширения для запроса HTML-страницы, а также HTML-ссылки внутри страниц преобразуются в адреса без расширения.

Расширения из ссылок на страницы также можно удалить, включив конфигурацию «Strip HTML Extension» в «Day CQ Link Checker Transformer», но

- Эта конфигурация не привязана к конкретному сайту и применяется ко всем размещенным сайтам.

- Это не будет добавлять / в конце переписанных URL-адресов.

Вывод

Надеюсь, это дало вам некоторое представление о настройке URL-адресов без расширений в AEM. URL-адреса без расширений обеспечивают лучшую читабельность и некоторую пользу для SEO. URL-адреса без расширения не зависят от технологии. Если вы хотите изменить способ отображения вашего контента, вам не нужно менять URL-адрес.

Первоначально опубликовано на https://www.albinsblog.com.