Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Dispatcher Doubt Regarding Mod Rewrite

binoyp6992037
Level 2
Level 2

Hi All,

 

I am exploring dispatcher rewrite rules and i'm fairly new to this.

<IfModule mod_rewrite.c>
#Enable this to debug the redirect logs
RewriteEngine on
 
# remove any trailing slash, if it's there.
RewriteRule ^(.+)/$ $1
 
#Shorten the URL
RewriteRule ^/content/we-retail/us/(.*).html$ $1.html [R,L]
#Map the root folder to the home page
RewriteRule ^/?$ en.html [R,L]
</IfModule>
 
The root path does resolve to en.html but it gives a 404 error instead of the internal redirect happening.
Is some additional configuration required for getting this working as expected?
Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution
Bimmi_Soi
Correct answer by
Community Advisor
Community Advisor

Here with the rewrite rule RewriteRule ^/?$ en.html  you have achieved the redirection on only dispatcher now there is one step which is left i.e. on publish environment you need to  go to /system/console/configMgr and open Apache Sling Resource Resolver Factory(org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl) and add in URL Mapping /content/we-retail/us/:/. Do not remove the already existing entry /:/ add after that. This is needed so that internally page can be  mapped to correct resource.

View solution in original post

1 Reply
shelly-goel
Community Advisor
Community Advisor

@binoyp6992037  You can either use sling mappings or configure Apache Sling Resource Resolver Factory for internal redirect to work

https://www.aemquickstart.in/2019/01/url-shortening-in-aem.html

Bimmi_Soi
Correct answer by
Community Advisor
Community Advisor

Here with the rewrite rule RewriteRule ^/?$ en.html  you have achieved the redirection on only dispatcher now there is one step which is left i.e. on publish environment you need to  go to /system/console/configMgr and open Apache Sling Resource Resolver Factory(org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl) and add in URL Mapping /content/we-retail/us/:/. Do not remove the already existing entry /:/ add after that. This is needed so that internally page can be  mapped to correct resource.

View solution in original post