Php 将十进制值发布到URL会导致Codeigniter出错
我试图使用Codeigniter框架Php 将十进制值发布到URL会导致Codeigniter出错,php,codeigniter,post,Php,Codeigniter,Post,我试图使用Codeigniter框架将一些值发布到URL,但遇到了一个问题。当post中的值是如下所示的整数时,一切正常: http://localhost:8080/myController/myMethod/1/2019/12345/ ------ 但是,当我需要向URL发布一个十进制值时,它会返回一个404(未找到)错误: http://localhost:8080/myControll
将一些值发布到URL,但遇到了一个问题。当post中的值是如下所示的整数时,一切正常:
http://localhost:8080/myController/myMethod/1/2019/12345/
------
但是,当我需要向URL发布一个十进制值时,它会返回一个404(未找到)
错误:
http://localhost:8080/myController/myMethod/1/2019/123.45/
------
我不知道这是否相关,但我最近更改了此URL发布到的服务器。我不记得在更换服务器之前遇到过这个问题,所以新服务器可能有问题
知道我为什么不能在URL中发布十进制值吗?因为[dot]将被视为域名
对我来说,你可以发送带有身体形态数据的数据帖子,这样你就不必担心URL,
但是,如果您仍然想从URL发送它,您可以使用不干扰URL功能的字符对其进行散列。例如,不要使用/
,
等更糟糕的是,我已经有6年没有使用Codeigniter了。
但我知道404错误页面意味着你的URL与你拥有的任何路由都不匹配。如果在路由中使用通配符(:num)
,请尝试将其替换为正则表达式([0-9\.]+)
。因为(:num)
仅表示0到9之间的数字。在传入URL之前对值进行编码,然后进行解码。