如果#在URL中签名,Codeigner重定向函数将失败


Codeigniter redirect function fails if # sign in the URL

如果用户没有登录我们的门户网站,我将使用PHP Codeigner库中的重定向将用户重定向到上次访问的URL。

$uri=$this->ci->uri->uri_string();$this->ci->session->set_flashdata('redirect',$uri);

它运行良好,只有一种情况除外:

当URL中有#符号时,例如:

http://myview.com/library#portal/sh2qQXF3SxAbJ

它重定向回http://myview.com/library

它不接受#符号后的地址。

在我们的前端,我们使用Backbone.js来检测#符号,并启动接下来需要使用Javascript执行的操作。。

我的问题是,是否有一种方法可以将整个URL存储在codeigniter会话变量中?

带有#的部分被称为片段,它永远不会传输到服务器(除非您手动执行,作为AJAX或其他东西中的参数)。因此,PHP永远不会在查询URL中看到它。