我有一个网络应用程序,允许搜索。因此,当我转到somedomain.com/search/<QUERY>
时,它会根据<QUERY>
搜索实体。问题是,当我尝试搜索.
或..
时,它没有按预期工作(这很明显)。令我感到惊讶的是,如果我手动输入somedomain.com/search/%2E
的网址,则浏览器(经过测试的Chrome和IE11)会将其转换为somedomain.com/search/
,并在没有必要负载的情况下发出请求。
到目前为止,我还没有找到任何可以说它不可能完成这项工作的东西,所以我来到这里。现在我只有一个选项:将.
和..
替换为类似__dotPlaceholder__
的内容,但这对我来说就像是一个肮脏的黑客。
欢迎任何解决方案(js或非js)。关于为什么浏览器剥离url编码点的任何信息也是一个很好的选择。
答案 0 :(得分:3)
遗憾的是,RFC3986的一部分定义了要在这种情况下进行规范化和剥离的URI点段,即http://example.com/a/./
成为http://example.com/a