4

有一个适用于 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 上没有相同的行为?有没有办法配置它?

4

3 回答 3

2

WAS9 自定义属性中记录的使用

com.ibm.ws.webcontainer.redirectcontextroot

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

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

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

于 2018-01-30T15:39:53.253 回答
1

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

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

于 2014-06-05T12:13:27.663 回答
0

我认为这是容器的错误。请检查下面的链接 404 NOT FOUND ERROR GENERATED FOR A REQUEST without a trailing slash

于 2016-08-10T14:57:16.950 回答