Url rewriting 需要帮助设置<;规则>;重写

Url rewriting 需要帮助设置<;规则>;重写,url-rewriting,tuckey-urlrewrite-filter,Url Rewriting,Tuckey Urlrewrite Filter,我有一个mysite.com网站(SpringBoot 2.0),我使用mysite.com?lang=en或mysite.com?lang=uk的本地化版本 如何在urlrewrite.xml org.tuckey.web.filters.urlrewrite.UrlRewriteFilter中进行配置; 获取:from mysite.com?lang=en mysite.com默认语言 mysite.com mysite.com/test mysite.com/save/wer 其他语言

我有一个mysite.com网站(SpringBoot 2.0),我使用mysite.com?lang=en或mysite.com?lang=uk的本地化版本 如何在urlrewrite.xml org.tuckey.web.filters.urlrewrite.UrlRewriteFilter中进行配置; 获取:from mysite.com?lang=en mysite.com默认语言

mysite.com
mysite.com/test
mysite.com/save/wer
其他语言

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>
来自mysite.com?lang=uk
mysite.com/uk
mysite.com/uk/test
mysite.com/uk/save/wer
^(.*(朗=(英国))。)$
/%{参数:lang}
^(.*(朗=(英国))。)$
/

您可以使用此规则来实现您正在尝试的目标

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

^(.+)郎=(…)(.+)$
$1/$2/$3
说明:将传入的URL拆分为3部分

第一部分:朗之前的每件事=

第二部分:朗后的两个字符=

第三部分:两个字符之后的每件事


通过删除lang=并保留所有其他内容来转发请求

非常感谢。但是对于其他语言,我使用httpServletRequest.getRequestDispatcher,我无法设置type=“redirect”共享代码,以便我可以查看和回答,但是您的第一个问题清楚地表明您在查询参数中传递了lang=uk。您是对的。我有默认语言的链接:应该重定向到新链接