【问题标题】:Java web app: prevent a slash from being added to the path?Java Web 应用程序:防止将斜杠添加到路径中?
【发布时间】:2011-08-23 09:52:15
【问题描述】:

如果我在 uri /myapp 下运行 web 应用程序,那么一旦通过 http://example.com/myapp 访问该应用程序,URL 就会更改为 http://example.com/myapp/。有什么办法可以预防吗?

【问题讨论】:

  • 这是我认为的浏览器行为。您使用哪个浏览器访问您的应用?
  • 这对您来说是个问题吗?为什么?
  • @Simeon:greuze 的回答描述了正在发生的事情。
  • @MarcoS:我希望它更干净,更少暴露,同时保存一个重定向。

标签: java url uri slash


【解决方案1】:

当您有这样的行为时,您的网络(或应用程序)服务器会返回一个

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 请求。

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

【讨论】:

  • 我理解这种行为。我在问是否可以在 webapp 级别的配置上进行配置。
  • 您必须 Web 应用程序级别之前配置它,即在Web/应用程序服务器中(在Apache Web 服务器、Tomcat、IIS 等中)。如果您在 Web 服务器后面使用应用程序服务器,则必须同时检查两者,以检查是否有任何正在执行重定向。你用的是什么服务器?你也可以在你的 webapp 中重定向请求,但我认为这不是你想要的。
  • 我只是希望不添加尾部斜杠,但我不想为整个服务器更改此行为。如果可以使用 webapp 配置消除这个额外的重定向,我想知道这个级别,但看起来这是不可能的。
猜你喜欢
  • 1970-01-01
  • 2012-09-06
  • 2021-04-18
  • 2021-08-24
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多