Need help setting up <rule> in urlrewrite

234 Views Asked by At

I have a mysite.com website (SpringBoot 2.0) where I use the localization of mysite.com?lang=en or mysite.com?lang=uk How can I configure in urlrewrite.xml org.tuckey.web.filters.urlrewrite.UrlRewriteFilter; To get: from mysite.com?lang=en mysite.com default en language

mysite.com
mysite.com/test
mysite.com/save/wer

Other languages

from mysite.com?lang=uk
mysite.com/uk
mysite.com/uk/test
mysite.com/uk/save/wer

<rule>
   <from>^(.*(lang=(ru|uk)).*)$</from>
   <to type="redirect">/%{parameter:lang}</to>
 </rule>
<rule>
  <from>^(.*(lang=(uk)).*)$</from>
   <to type="redirect">/</to>
 </rule>
1

There are 1 best solutions below

8
Venu On

You can use this rule to achieve what you are trying

<rule>
    <from>^(.+)lang=(..)(.+)$</from>
    <to type="redirect">$1/$2/$3</to>
</rule>

Explanation : Split the incoming URL into 3 parts

Part 1: Every thing before lang=

Part 2: 2 characters after lang=

Part 3: Every thing after the 2 characters

Forward the request by removing lang= and keeping everything else