Php 将十进制值发布到URL会导致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

我试图使用Codeigniter框架
将一些值发布到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之前对值进行编码,然后进行解码。