我想使用urlrewritefilter在URL中包含客户名称和语言,并将它们作为参数传递给隐藏的URL。这样该网站就会打开定制。语言斜杠之后的所有内容都应传递给隐藏的URL
http://www.x.com/customer1/en/ 重写为隐藏的网址。客户不应该看到应该调用的以下URL。
并添加以下参数 语言= EN 的customerID = 3
我正在尝试此规则,但始终获得404 http状态错误
<rule match-type="regex">
<from>^/customer1/en/([A-Za-z0-9\._/]+)$</from>
<set name="customerID">3</set>
<set name="language">en</set>
<to type="forward">/myapp/$1</to>
</rule>
答案 0 :(得分:0)
我假设你有一个带有context-root =“/”的webapp(没有交叉上下文)。
如果没有完成日志,也许你应该激活日志,看看你的规则是否被调用且匹配。
您可以在过滤器配置中激活urlrewritefilter的日志(请参阅http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html#filterparams)。
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<!-- sets up log level (will be logged to context log)
can be: slf4j, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL,
sysout:{level} (ie, sysout:DEBUG)
if you are having trouble using normal levels use sysout:DEBUG
(default WARN) -->
<init-param>
<param-name>logLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
</filter>
您还必须添加日志记录的依赖项,例如slf4j-api,slf4j-log4j12,log4j-1.2。