为什么CodeIgniter重定向不会删除URL末尾的散列/磅(#)?

时间:2012-02-19 05:09:51

标签: codeigniter

我不确定这是否真的是CodeIgniter问题或浏览器问题。这种情况发生在Chrome中,但不适用于Safari。但是,我认为它不应该在任何浏览器中发生。

如果您转到包含

example.com/foo#
redirect('bar');

您希望最终以 example.com/bar 结束。相反,您最终会以 example.com/bar# 结束。我不明白为什么哈希不会消失。这没有道理。发生了什么事?

2 个答案:

答案 0 :(得分:10)

如果您需要删除哈希值,请使用refresh方法:

redirect('bar', 'refresh');

答案 1 :(得分:5)

它不能。 哈希标记只能由客户端脚本访问。代码点火器,PHP或任何其他服务器端脚本甚至不知道#符号后面是什么。发送到服务器的请求是#符号之前的请求。 #sign之后的部分将传递给要解释的文档。如果有一个id为#符号的元素,则页面向下滚动到该符号。否则js可以读取它并根据需要用它做事。

此外,HTTP重定向使用与原始页面相同的参数传输请求,因此hastag也会传递