Codeigniter URI段带有奇数结果

时间:2012-08-05 14:40:56

标签: php codeigniter uri segment

我在CodeIgniter的URI段系统中遇到了一个奇怪的问题。

当我有这个网址时:

http://www.mywebsite.com/forums/category_name/forum_name/topic_name ..(是的,这个名字有两个点)

现在我在PHP中执行此操作:

$topic = $this->uri->segment(4);
>>> echo $topic: 'topic_name..'

这完美无缺。但是这里出现了奇怪的问题。当我向这样的网址添加回复时:

http://www.mywebsite.com/forums/category_name/forum_name/topic_name../reply

现在我再次执行PHP代码:

$topic = $this->uri->segment(4);
>>> echo $topic: 'topic_name '

正如你所看到的那样突然用“”代替我的“......”(一个空格,为什么不是两个?)。

当我添加一个带点(“。”)之后的段时,是否有人知道URI段方法是否可能清理某些内容。奇怪的是,当我手动修复后面有空格的URL时,它再次起作用,因为在trim()之后它仍然有“..”的左边,CodeIgniter这次似乎没有触及它们:< / p>

http://www.mywebsite.com/forums/category_name/forum_name/topic_name..%20/reply

$topic = $this->uri->segment(4);
> echo $topic: 'topic_name.. '
>>> echo trim($topic): 'topic_name..'

1 个答案:

答案 0 :(得分:1)

见以下网址: -

CodeIgniter中的URI类

URI类提供的功能可帮助您从URI字符串中检索信息。如果使用URI路由,还可以检索有关重新路由的段的信息。

http://codeigniter.com/user_guide/libraries/uri.html

阅读本文

我相信发生的事情是你的服务器使用./index.php作为403。 在URI中添加“...”将导致发生两件事之一。

1)浏览器将尝试更改文件夹句柄并上一个或两个目录

2)对于Apache Web Server“(20024)给定路径格式错误或包含无效字符”

我不建议在URI中放置点,除非它是url后缀,然后只需要一个点。