Expand my Community achievements bar.

SOLVED

Reverse Mapping in /etc/map

Avatar

Level 2

Hi there,

We have a request where we are using etc/map for rewrite URLs of our site but now we need to have a reverse mapping in order to get the valid path to show in all links in the site.

Our Sling mapping (not reverse) is the next one:

sling:internalRedirect

String

/content/site/es/es/$1.html

sling:match

String

localhost.4502/es/(.*)$

Now, we are trying to get the inverse, when resolving the url by /content/site/es/es/page we need to have the domain/es/page with

getResourceResolver().map(resourcePath)

e.g. localhost:4502/es/folder/page serves the content of /content/site/es/es/folder/page. This behavior is ok.

The issue is that every href in the page (fetched by resource resolver) are invalid links serving:  /content/site/es/es/folderx/pagex and not: localhost:4502/es/folderx/pagex

Do you have any idea how to create these reverse rules or if we are thinking on the correct way to have valid links in the site?

Regards.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

you can try to create new node in /etc/map with below value for reverse mapping.

sling:internalRedirect

String

/content/site/es/es/(.*).html

sling:match

String

localhost.4502/es/$1

I am not sure what is your use case here, if you are just creating shortened url then you can create reverse mapping like above and to map short urls to actual content you can create mapping.



Arun Patidar

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

Hi,

you can try to create new node in /etc/map with below value for reverse mapping.

sling:internalRedirect

String

/content/site/es/es/(.*).html

sling:match

String

localhost.4502/es/$1

I am not sure what is your use case here, if you are just creating shortened url then you can create reverse mapping like above and to map short urls to actual content you can create mapping.



Arun Patidar