Adi*_*ady 5 rewrite jetty url-rewriting
每个Web应用程序/上下文是否有一种方法可以为该特定Web应用程序指定重写文件?我看到这个当前工作的唯一方法是在启动它时通过命令行.我想的可能是override.xml文件中的设置,甚至是上下文xml文件中的设置.
如果您使用 context.xml 可部署项,您可以将 RewriteHandler 规则集成到应用程序特定的上下文 xml 中。
${jetty.home}/contexts/test.xml示例:这是在 jetty-distribution 中找到的context.xml 的替换。它添加了一条规则,只需在所有请求的响应上添加一个 cookie (visited=yes)。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
<Set name="contextPath">/</Set>
<Set name="handler">
<New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<Set name="handler">
<New class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test.war</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
<Set name="overrideDescriptor"><SystemProperty name="jetty.home" default="."/>/contexts/test.d/override-web.xml</Set>
</New>
</Set>
<Set name="rewriteRequestURI">true</Set>
<Set name="rewritePathInfo">false</Set>
<Set name="originalPathAttribute">requestedPath</Set>
<!-- add a cookie to each path visited -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.CookiePatternRule">
<Set name="pattern">/*</Set>
<Set name="name">visited</Set>
<Set name="value">yes</Set>
</New>
</Arg>
</Call>
</New>
</Set>
</Configure>
Run Code Online (Sandbox Code Playgroud)
要验证此规则是否有效,请启动 jetty,转到http://localhost:8080/然后使用“Sessions”测试组件,您将看到它visited=true在顶部显示为 cookie。
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |