1

我想使用 urlrewritefilter 在 URL 中包含客户名称和语言,并将它们作为参数传递给隐藏的 url。这样网站才会开定制。语言斜线之后的所有内容都应该传递给隐藏的 url

http://www.x.com/customer1/en/ 重写为隐藏的 url。客户不应看到应调用的以下 URL。

http://www.x.com/myapp/

并添加以下参数 language=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>
4

1 回答 1

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。

于 2012-10-03T12:05:41.183 回答