provide 301 redirect in aem 6.5 | Community
Skip to main content
sreenu539
Level 7
October 2, 2020
Solved

provide 301 redirect in aem 6.5

  • October 2, 2020
  • 4 replies
  • 14387 views

Hi,

 

I know Out of the box AEM "redirectTarget" page property does "302" redirect. I am really not sure how AEM doing internally.

 

Client requirement is to have option for both "301" and "302". 

I saw following as options ( more solutions and best solutions are welcome)

http://www.sgaemsolutions.com/2018/

 

http://adobeaemtips.blogspot.com/2017/10/aem-page-redirect-sling-model.html

 

Please let me know, if these are needed or does AEM 6.5 will take care of redirect status if I have "redirectStatus page property value as "301" or "302" or any other solutions.

 

Thanks,

Sri

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by vanegi

This redirection of request URLs in AEM can be configured at the Sling level, typically in the mapping configuration under /etc/map node. There are two ways of changing the status code:

 

1) By sling:status property

 

You can use sling:status property to set a specific status code for a particular redirection. Here is an example:

 

/etc/map

      +-- http

           +-- example.com.80

           |    +-- sling:redirect = "http://www.example.com/"

           |    +-- sling:status = "301"

 

Please check the document [0] for more details.

 

[0]: https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html

 

 

2) Via OSGI configuration

 

Another way, which really sets the default for all redirection, is to configure the status code at the OSGi bundle level. In the OSGi console, browse the the Configuration page and locate: “Apache Sling Resource Resolver Factory” and change the redirect status field to whatever status code is appropriate.

4 replies

Ravi_Pampana
Community Advisor
Community Advisor
October 2, 2020

Hi, 

 

We can handle easily at dispatcher level by passing R=301 to the redirect rules.

 

Ex:

RewriteRule (.*)$ https://%{SERVER_NAME}$1/ [R=301,QSA,L]

RewriteRule ^/test.html /test.html#anchor [NE,R=301,L]

vanegi
Adobe Employee
vanegiAdobe EmployeeAccepted solution
Adobe Employee
October 5, 2020

This redirection of request URLs in AEM can be configured at the Sling level, typically in the mapping configuration under /etc/map node. There are two ways of changing the status code:

 

1) By sling:status property

 

You can use sling:status property to set a specific status code for a particular redirection. Here is an example:

 

/etc/map

      +-- http

           +-- example.com.80

           |    +-- sling:redirect = "http://www.example.com/"

           |    +-- sling:status = "301"

 

Please check the document [0] for more details.

 

[0]: https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html

 

 

2) Via OSGI configuration

 

Another way, which really sets the default for all redirection, is to configure the status code at the OSGi bundle level. In the OSGi console, browse the the Configuration page and locate: “Apache Sling Resource Resolver Factory” and change the redirect status field to whatever status code is appropriate.

Nikhil-Kumar
Community Advisor
Community Advisor
October 5, 2020

@sreenu539 
You can achieve it by using etc/map. Like mapping the input request and redirecting to the destination output page.
Below is an example which might help you:

https://aemsimplifiedbynikhil.wordpress.com/2020/08/26/shortening-of-url-using-etc-map/

Thanks,
Nikhil

raj_mandalapu
Level 7
October 5, 2020

Hi @sreenu539 

Both solutions will work, choosing one on others depends on the requirements if you have hundreds of pages and want to give control to the content authors then selecting this at page property level will help, you do not need to request TechOps guys to add redirection for every page.

If you what pages you want to redirect then I prefer rewrite URL's is the best solution.

Level 2
November 16, 2021

Hi,

I have around 1000 pages which is something like this-

source page- content/abc/content/at/de/test/insights/articles/equity/2020/robotics-automation-at.html

I want to implement 301 redirect 

target page- content/abc/content/at/de/test/insights/articles/equity/2020/robotics-automation.html

 

how can I implement this.

Level 2
November 25, 2021

We have followed below steps: 

1. Used ACS common Redirect Manager to mange all the redirects

2. Publish the same to the publisher

3. Wrote shell script  & placed on dispatcher which will connect to the publisher and download the redirects map and save at dispatcher level.

4. Added Rewrite rules at dispatcher level to pick redirects map and redirects accordingly.

 

Eg: 

 

Note: We wanted to give the flexibility to the authors where they can manage redirects source & target from author instance itself so we went with this approach.

 

In your case, I think you can even try rewrite rule with regular expression at Apache itself if you know the pattern of url changes. 

 

 

 

 

 
 

Hi @siva_sogalapalli 

Thanks