【问题标题】:Redirect to URL with trailing slash doesn't occur in Websphere 8.5.5Websphere 8.5.5 中不会出现重定向到带有斜杠的 URL
【发布时间】:2014-06-09 13:12:55
【问题描述】:

有一个适用于 WAS7 的应用程序。它在上下文路径“Foo/Bar”(复合一)上部署了战争模块。也就是说,可以通过如下 URL 访问 war 模块:localhost:9080/Foo/Bar。

然后我在 WAS 8.5.5 上部署了相同的应用程序。尝试使用相同的 URL localhost:9080/Foo/Bar(不带斜杠)访问 war 模块,并在没有检索到 css 和 js 文件的情况下获取“裸”页面。但是,当我尝试通过以下 URL localhost:9080/Foo/Bar/(带有斜杠)访问模块时,css 和 js 会被正确拾取。

到目前为止,我能够弄清楚的是,在 WAS 7 上一切正常,因为从没有尾部斜杠的 URL 重定向到带有尾部斜杠的 URL。这似乎是正常行为http://webdesign.about.com/od/beginningtutorials/f/why-urls-end-in-slash.htm。问题是为什么我在 WAS 8.5.5 上没有相同的行为?有什么方法可以配置吗?

【问题讨论】:

  • pic.dhe.ibm.com/infocenter/wasinfo/v7r0/… 中记录的属性 com.ibm.ws.webcontainer.removetrailingservletpathslash(真或假)也适用于 Websphere 8.0,可能适用于 8.5,但我没有要测试的 8.5 服务器.
  • Martin,由于某些原因,我无法通过您提供的链接找到此属性,但我尝试使用 'false' 和 'true' 值添加它以防万一,但它没有帮助解决我的问题

标签: url redirect websphere trailing-slash contextpath


【解决方案1】:

使用记录在WAS9 Custom Properties

com.ibm.ws.webcontainer.redirectcontextroot

如果设置为 true,并且向缺少尾部斜杠的应用程序的上下文根发出请求,则 WebContainer 会附加尾部斜杠。 WebContainer 在应用应用程序中定义的任何 servlet 过滤器之前重定向到带有附加斜杠的 URL。

例如,在应用任何过滤器之前,对http://host:port/contextRoot 的请求被重定向到http://host:port/contextRoot/

名称:com.ibm.ws.webcontainer.redirectcontextroot, 默认值:假

【讨论】:

    【解决方案2】:

    我认为这是容器的错误。请检查下面的链接 404 NOT FOUND ERROR GENERATED FOR A REQUEST WITHOUT A TRAILING SLASH

    【讨论】:

      【解决方案3】:

      我花了一些时间调试 Websphere 类,发现了一个属性,我相信它可以回答我的问题:com.ibm.ws.webcontainer.redirectcontextroot。坏消息是我在与 Websphere 的 WebContainer 自定义属性相关的文档中找不到它。

      所以现在重定向按我的预期工作,但我对我正在使用一些未记录的功能这一事实感到困惑......

      【讨论】:

      • 您能解释一下如何在 WAS 上设置该属性吗?
      猜你喜欢
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多