2011-05-11 38 views
0

如果我在uri /myapp下运行web应用程序,那么只要通过http://example.com/myapp访问应用程序,URL就会更改为http://example.com/myapp/。有什么办法可以防止这种情况发生?Java Web应用程序:防止将斜杠添加到路径中?

+1

这是我认为的浏览器行为。您使用哪款浏览器访问您的应用? – Simeon 2011-05-11 15:10:25

+1

这是你的问题吗?为什么? – MarcoS 2011-05-11 15:22:58

+0

@Simeon:格鲁兹的回答描述了正在发生的事情。 – 2011-05-11 16:32:15

回答

2

当你有这样的行为,你的网页(或应用)服务器返回一个

301 Moved Permanently 

当请求没有斜杠的URL。

得到http://www.google.es/services

HTTP/1.1 301 Moved Permanently 
Location: http://www.google.es/services/ 
Content-Type: text/html; charset=UTF-8 
X-Content-Type-Options: nosniff 
Date: Wed, 11 May 2011 15:24:06 GMT 
Expires: Fri, 10 Jun 2011 15:24:06 GMT 
Cache-Control: public, max-age=2592000 
Server: sffe 
Content-Length: 227 
X-XSS-Protection: 1; mode=block 

当这第一个HTTP后,你可以看到一个类似的例子得到http://www.google.es/services (没有斜杠),浏览器发出第二HTTP得到http://www.google.es/services/(带斜线)。例如,您可以使用Firebug中的“网络”选项卡跟踪HTTP请求。

您可以检查您的Web /应用程序服务器配置,也许可以更改此行为。

+0

我了解行为。我问是否可以在Web应用程序配置级别上配置。 – 2011-05-11 16:31:49

+0

您必须在web应用程序级别之前(即在Web /应用程序服务器(在Apache Web Server,Tomcat,IIS等中))配置*。如果您在Web服务器后面使用应用程序服务器,则必须同时检查两者,以检查是否有任何重定向。你使用什么服务器? 你也可以在webapp中重定向请求,但我认为这不是你想要的。 – greuze 2011-05-12 15:28:40

+0

我只是想根本不添加尾部斜线,但我不想改变整个服务器的这种行为。如果使用webapp配置可以消除这种额外的重定向,我想知道的级别,但看起来这是不可能的。 – 2011-05-12 16:22:04

相关问题