好的,我只是将服务器从共享主机切换到专用服务器,并且除了一个问题外,一切似乎都运行相同。在我进入这个之前,我应该提到两个服务器在LAMP堆栈上运行完全相同的codeigniter配置
我认为仅通过示例展示是最容易的,所以这里是:
URI: / search / term /%
新服务器结果:错误请求 - 服务器错误
旧服务器结果:执行搜索并返回%
URI: / search / term /%20
新服务器结果:搜索并返回空格的结果(%20的翻译)
旧服务器结果:搜索并返回空格的结果(%20的翻译)
URI: / search / term /%2F
新服务器结果:未找到 - 服务器错误
旧服务器结果:搜索并返回/的结果(%2F的翻译)
我希望服务器在这些实例中生成结果,就像之前的服务器一样。
更新
Senario#3已经解决,但第一个问题仍然存在,我无法弄明白。我想添加更多关于它的细节,以便可以深入了解它。
确切的错误信息是:
400 Bad Request Bad;您的浏览器发送了此服务器无法理解的请求。
如果需要进一步的信息,请告诉我,我很乐意提供。 谢谢!!
答案 0 :(得分:3)
答案 1 :(得分:0)
如果要从表单传递该文本,则可能需要使用Javascript encodeURI()
文本并将其传递给服务器。然后服务器(PHP)可以使用rawurldecode()
对其进行解码。使用您的示例,%20
将在网址中变为%2520
,然后服务器将对其进行解码%20
。