有一个适用于WAS7的应用程序。它在上下文路径上部署了war模块" Foo / Bar" (化合物一)。也就是说,war模块可以通过以下URL访问:localhost:9080 / Foo / Bar。
然后我在WAS 8.5.5上部署了相同的应用程序。尝试使用相同的URL localhost访问war模块:9080 / Foo / Bar(不带斜杠)并获取"裸"没有检索到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上没有相同的行为?有没有办法配置它?
答案 0 :(得分:2)
<强> com.ibm.ws.webcontainer.redirectcontextroot 强>
如果设置为true,并且请求具有缺少尾部斜杠的应用程序的上下文根,则WebContainer会附加尾部斜杠。 WebContainer在应用应用程序中定义的任何servlet过滤器之前,会使用附加的斜杠重定向到URL。
例如,在应用任何过滤器之前,http://host:port/contextRoot的请求会重定向到http://host:port/contextRoot/。
名称:com.ibm.ws.webcontainer.redirectcontextroot, 默认值:false
答案 1 :(得分:1)
我花了一些时间调试Websphere类,发现了一个我认为是我的问题答案的属性:com.ibm.ws.webcontainer.redirectcontextroot
。坏消息是我无法在与Websphere的WebContainer自定义属性相关的文档中找到它。
所以现在重定向工作正如我所料,但我对使用一些未记录的功能这一事实感到困惑......
答案 2 :(得分:0)
我认为这是容器的一个错误。请检查以下链接 404 NOT FOUND ERROR GENERATED FOR A REQUEST WITHOUT A TRAILING SLASH