Jetty将特定请求转发到单个路径

时间:2013-02-13 22:06:35

标签: redirect jetty

如何设置Jetty只将特定的父路径转发到目录?例如,当用户请求:localhost /它应该转到localhost / CorrectDirectory。诸如localhost / AnotherDirectory之类的请求是否正确?

RewriteHandler gives上的文档:

 <Set name="handler">
   <New id="Handlers" class="org.mortbay.jetty.handler.RewriteHandler">
     <Set name="rewriteRequestURI">false</Set>
     <Set name="rewritePathInfo">false</Set>
     <Set name="originalPathAttribute">requestedPath</Set>
     <Call name="addRewriteRule"><Arg>/other/*</Arg><Arg>/test</Arg></Call>
     <Call name="addRewriteRule"><Arg>/test/*</Arg><Arg></Arg></Call>
     <Call name="addRewriteRule"><Arg>/*</Arg><Arg>/test</Arg></Call>
     <Set name="handler">

从它的外观来看,如果我试图为localhost /重写规则,我必须命名每个子目录,以防止直接从localhost / DirectoryTwo到localhost / CorrectDirectory / DirectoryTwo(这是不正确的) )。

1 个答案:

答案 0 :(得分:0)

我不确定我是否对你提出了问题,我认为它类似于:

  

我想重定向“/”但只是“/”而不是“/ someting”重定向到“/ somedestination”

看看这个答案: https://stackoverflow.com/a/25405898/3489108

您可以使用RewriteRegexRule实现所需的结果。正则表达式“^ / $”匹配字符串的开头(^),确切的路径(/)和字符串的结尾($)。这可以确保只匹配精确路径。

我正在使用jetty 9嵌入式并在代码中设置我的重定向,所以我无法帮助搞清楚,如何设置它“配置方式”。