URL Rewriting | Community
Skip to main content
June 14, 2021
Solved

URL Rewriting

  • June 14, 2021
  • 4 replies
  • 2780 views

Hello Team,

 

Hope you are doing fine.

 

I need one small help regarding URL rewriting in Apache dispatcher :

 

REQUIREMENT:

 

This is my current rule for home page and other pages, it works fine.

# Homepage
#Homepage
RewriteRule ^/$ /en.html [R,L,ENV=REDIRECTCACHE:1]


# Base path prepend
RewriteCond %{REQUEST_URI} !^/dispatcher/.*
RewriteCond %{REQUEST_URI} !^/libs/.*
RewriteCond %{REQUEST_URI} !^/content/mysite-uk/.*
RewriteCond %{REQUEST_URI} !^/content/experience-fragments/.*
RewriteCond %{REQUEST_URI} !^/content/dam/.*
RewriteCond %{REQUEST_URI} !^/etc/.*
RewriteCond %{REQUEST_URI} !^/etc.clientlibs/.*
RewriteCond %{REQUEST_URI} !^/conf/.*
RewriteCond %{REQUEST_URI} !^/bin/.*
RewriteCond %{REQUEST_URI} !^/system
RewriteCond %{REQUEST_URI} !^/.well-known/.*
RewriteCond %{REQUEST_URI} !^/error/.*
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/BingSiteAuth.xml

RewriteRule ^(.*)$ /content/mysite-uk$1 [PT,QSA]

 

Now my new requirement is to add a keyword "cmsapp" between domain and main url.

for example:
1) To access home page, now, It should be like that

https://<domainName>/cmsapp --It should open /content/mysite-uk/en.html

Similarly,

2) for other pages,

https://<domainName>/cmsapp/product/coffee ----- It should open /content/mysite-uk/product/coffee.html

 

 

Could some one help me out please.

 

Regards,

AP

 

 

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

4 replies

Varun_Shakya
Community Advisor
Community Advisor
June 14, 2021
arunpatidar
Community Advisor
arunpatidarCommunity AdvisorAccepted solution
Community Advisor
June 14, 2021
sudeshb1607
June 14, 2021

Hi @arvind-1 ,

 

For this, you need to do 2 parts;

1. Write http rule in dispatcher.

  •   if there is no url then redirect is it /cmsapp.
  •   if there is url then append the remaining part of the url(leaving domain) at the end of custom url something like cmsapp/$1.

2. Since cmsapp doesnt exist  so add resource resolver mapping configuration in JcrResourceResolverFactory so that syntheic url resolves to correct resource.

 

Keep in mind, for step 1 also test urls with selectors and query strings.

 

Thanks,

Sudesh

Ritesh_Mittal
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
June 14, 2021

Hi @arvind-1 ,

 

Basically below is what you want

 

RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [PT,QSA]

 

We added QSA, because we do not want to discard query string.

So the final entry which should work should be-


RewriteRule ^/?cmsapp/(.*)$ /content/mysite-uk/$1.html [PT,QSA]