AEM adds ‘.html’ to the Redirect URL of Internal Pages

Description

AEM adds .html to URL fragment (or anchor, the last part of URL staring from #). For example:

/content/we-retail/us/en/men.html#FEATURED - /content/we-retail/us/en/men.html#FEATURED.html

Steps to reproduce:

  1. Create a new content page page1 under /content/we-retail.

  2. Select page1 Properties.

  3. In Advanced tab ‘Redirect’ field, set /content/we-retail/us/en/men.html#FEATURED.

  4. Access page1 with ‘View as Published’.

$  curl -v -u admin:admin http://localhost:6402/content/we-retail/page1.html?wcmmode=disabled
* About to connect() to localhost port 6402 (#0)
...
HTTP/1.1 302 Found
Date: Mon, 29 Jun 2020 08:21:19 GMT
X-Content-Type-Options: nosniff
Content-Type: text/html;charset=utf-8
Location: http://localhost:6402/content/we-retail/us/en/men.html#FEATURED.html?wcmmode=disabled
Content-Length: 0
* Connection #0 to host localhost left intact

Resolution

This is a hard-coded behaviour. The com.day.cq.wcm.foundation.impl.PageRedirectServlet#doGet is adding ‘.html’ to the redirect URL if the redirect target is a space within the same AEM.

On this page