Убрать расширение HTML из исходящего URL

Я использую AEM. Я настроил некоторые тщеславные URL с перенаправлением. Пример:

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html

Также на веб-сервере я настроил удаление расширения HTML, чтобы мой веб-сервер удалил расширение html с помощью другого перенаправления. Теперь, когда я нажму на тщеславный URL, у меня будет 2 перенаправления

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html [1st redirect]
/content/geometrixx-outdoors/women/coats/winter-coat.html > 
/content/geometrixx-outdoors/women/coats/winter-coat [2nd redirect]

Я хочу избежать двух перенаправлений, и я не хочу показывать расширение HTML для конечных пользователей.

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat [only one redirect]

Я провел некоторое время на стороне слинга без удачи. Все, что я понимаю, так как Sling вернет 403 для всех URL без расширения, он всегда возвращает URL с расширением. Возможно ли это на стороне диспетчера или веб-сервера?

2 ответа

Если я понимаю, вы хотите удалить расширение.html со всех страниц вашего сайта.

Решение @awd гарантирует, что все ссылки на вашей странице будут преобразованы в uris без расширения.

Если вы вообще не хотите расширений на вашем сайте, вы должны использовать внутреннее перенаправление, создав карту в / etc / maps, вы можете найти официальную документацию здесь: http://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html

Спасибо всем за участие.

Я нашел следующее решение проблемы

Я бы сделал следующие настройки для веб-сервера Для Apache, в httpd.conf

Header edit Location (.*).html$ $1

Для iPlanet в obj.conf

<If $srvhdrs{'Location'} =~ "^(.*).html$">
   Output fn="set-variable" $srvhdrs{'Location'}="$1"
</If>

Это гарантирует, что расширение html будет удалено из заголовка местоположения для перенаправленных URL-адресов.

Другие вопросы по тегам