具有多个斜杠的快速路由 - Linux和; Windows的区别

时间:2014-07-24 15:09:46

标签: node.js express

我遇到了快速路线的奇怪行为。我想通过HTML-Form输入一个ID,并通过ajav(jquery)获取结果以显示该条目。一切正常,直到我必须将ID从数字扩展到字符串(用斜杠)。

我编辑了所有功能和电话。我用reg ex检查strign并想要用修改后的路由(express)获取请求。但问题来了。我得到它在Windows下工作但它在Linux上失败了。也许问题是由于基础设施引起的,因为node.js应用程序位于反向代理apache2后面,以便将服务隧道传送到公共(使用域和证书)。

什么都有。也许有人可以帮助我设置这个东西并使其运行。

app.get(/^\/byId\/(.+)/, getSourceById);

在被调用的函数中没有使用req.params [0]。在测试服务器(Windows)上它甚至使用旧路径

app.get('/byId/:id', getSourceById);

因为html表单确实请求%2F而不是/。但是,两种方式都应该可以获取请求。但两者都不适合我。我错过了什么吗?

我感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

找到我的问题的答案。确实是反向代理阻止了请求。

  

模拟问题:http://www.gossamer-threads.com/lists/apache/users/314562

如何解决这个问题:

  

http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes

由于安全问题,默认禁止使用。如果您需要,请仔细使用。