2016-08-10 36 views
0

我測試的碼頭9重寫功能,試圖改寫以下網址:如何配置Jetty URL重寫處理程序?

http://localhost/rewritehttp://localhost/test.html

這裏是我的配置:

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> 
     <Set name="handler"><Ref refid="oldhandler"/></Set> 
     <Set name="rewriteRequestURI"><Property name="jetty.rewrite.rewriteRequestURI" deprecated="rewrite.rewriteRequestURI" default="true"/></Set> 
     <Set name="rewritePathInfo"><Property name="jetty.rewrite.rewritePathInfo" deprecated="rewrite.rewritePathInfo" default="false"/></Set> 
     <Set name="originalPathAttribute"><Property name="jetty.rewrite.originalPathAttribute" deprecated="rewrite.originalPathAttribute" default="requestedPath"/></Set> 

     <!-- Set DispatcherTypes --> 
     <Set name="dispatcherTypes"> 
     <Array type="javax.servlet.DispatcherType"> 
      <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>REQUEST</Arg></Call></Item> 
      <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>ASYNC</Arg></Call></Item> 
     </Array> 
     </Set> 

     <Call name="addRule"> 
     <Arg> 
      <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule"> 
      <Set name="pattern">/rewrite</Set> 
      <Set name="replacement">/test.html</Set> 
      </New> 
     </Arg> 
     </Call> 
    </New> 

    ... 

</Configure> 

開幕http://127.0.0.1/test.html在瀏覽器中工作,但http://localhost/rewrite給我一個404錯誤。
我配置錯了嗎?

回答

0

我不得不執行:

java -jar start.jar --add-to-startd=rewrite 

修改jetty-rewrite.xml代替jetty.xml

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd"> 

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <!-- =========================================================== --> 
    <!-- configure rewrite handler         --> 
    <!-- =========================================================== --> 
    <Call name="insertHandler"> 
    <Arg> 
     <New class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> 
    <Set name="rewriteRequestURI"><Property name="jetty.rewrite.rewriteRequestURI" deprecated="rewrite.rewriteRequestURI" default="true"/></Set> 
    <Set name="rewritePathInfo"><Property name="jetty.rewrite.rewritePathInfo" deprecated="rewrite.rewritePathInfo" default="false"/></Set> 
    <Set name="originalPathAttribute"><Property name="jetty.rewrite.originalPathAttribute" deprecated="rewrite.originalPathAttribute" default="requestedPath"/></Set> 

    <!-- Set DispatcherTypes --> 
    <Set name="dispatcherTypes"> 
     <Array type="javax.servlet.DispatcherType"> 
     <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>REQUEST</Arg></Call></Item> 
     <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>ASYNC</Arg></Call></Item> 
     </Array> 
    </Set> 

     <Get id="Rewrite" name="ruleContainer"/> 

    <!-- see rewrite-compactpath.xml for example how to add a rule --> 
    <Call name="addRule"> 
     <Arg> 
      <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule"> 
      <Set name="pattern">/rewrite/test.html</Set> 
      <Set name="replacement">/test/test.html</Set> 
      </New> 
     </Arg> 
     </Call> 

     </New> 
    </Arg> 
    </Call> 
</Configure> 
相關問題