当前位置: 首页 > 知识库问答 >
问题:

当URL路径中有特殊字符时,在Tomcat中使用Apache ProxyPass或Mod_jk

柴晔
2023-03-14

我正在努力解决ProxyPass中的一个问题。我曾尝试使用Apache和Nginx使用tomcat设置Proxypass。除了URL中有任何字符外,一切都很好。我不知道这是Apache中的错误还是什么,我在程序中作为代理从Apache获得的请求URI与不使用代理的Tomcat不同。我在Javaservlet中使用了“request.getRequestURI()”。例如,如果URL是

/movies/logs, logs

使用Apache或Nginx setup ProxyPass或Mod_jk我得到:

/movies/logs,%20logs

如果我直接使用Tomcat,我得到:

/movies/logs%2C%20logs

理想情况下,我希望网址与我在Tomcat中收到的网址相同。有人能帮我解决这个问题吗?

非常感谢!

共有1个答案

司空叶五
2023-03-14

默认情况下,Apache会在进一步传递URL之前对其进行规范化,而tomcat单独一人的做法显然有所不同。要防止mod_proxy修改您的URL,请在ProxyPass指令中添加nocanon关键字。

请注意,在RFC 1738中,空格和逗号都被认为是不安全的,不应在未加修饰的情况下使用。

 类似资料:
  • 我正在制作一个程序,从传奇联盟api获取数据,它分析你当前的游戏,并向你显示你的对手的名字,等级和东西。但我有一个问题,因为要获得某人的排名,我需要访问一个特定的url,其中包含他的尼克。问题是,一些玩家在他们的刻痕中放置了å、á、è、ö之类的角色,当这种情况发生时,我的程序就会停止工作。我将向您展示我用来实现这一点的部分代码: 这就是它抛出的错误:java。io。IOException:服务器返

  • 问题内容: 我无法在Elasticsearch中以特殊字符结尾/开头的字符进行搜索。就像“ 123456!” 我的映射是 它给我错误,我可以在搜索查询(或映射)中做什么,以便特殊字符将被视为搜索字符串的一部分? 问题答案: 由于您的字段是(好!),请尝试用双引号引起来进行完全匹配: 这样做的另一种方法是在查询中设置分析器(但请务必转义,因为它是保留字符(对于操作员)

  • 问题内容: 我的应用程序正在使用这样的NSURL: 当我试图做一个从这个NSURL获取数据的任务时,如下所示: 但是尝试从该地址获取数据时出现错误,尽管当我使用野生动物园去链接时:“ http://www.geonames.org/search.html?q =Aïn+Béïda+ Algeria&country =“我可以看到数据。我该如何解决? 问题答案: 迅捷2 编码的URL现在是: “ h

  • 问题内容: 我正在尝试使用该SQL从XML Server Expression的SQL Server 2008表中获取名字和姓氏。数据包含特殊字符。当我尝试sql时,出现以下错误: FOR XML无法序列化节点“ LastName”的数据,因为它包含XML不允许的字符(0x001B)。要使用FOR XML检索此数据,请将其转换为二进制,varbinary或图像数据类型,并使用BINARY BASE

  • 问题内容: 如何在Java / Eclipse中使用/显示♥,♦,♣或like等字符? 当我尝试直接使用它们时,例如在源代码中,Eclipse无法保存文件。 我能做什么? 编辑:如何找到Unicode转义序列? 问题答案: 问题在于,您使用的字符无法在文件设置为(Cp1252)的编码中表示。从我的角度来看,您基本上有两个选择: 选项1. 更改编码。 根据IBM的介绍,您应该将编码设置为UTF-8。

  • 我有一个网络服务,我想用“应用/x-www-表单-urlencoded”内容类型调用它。请求有时包含特殊字符,如*-和......问题是目标Web服务不能完美地接收请求。它接收类似这样的: "////////////////w=="几乎所有字符都转到/。到底是什么问题? 这是我的密码: web服务接收: