如果URL中有#符号,则Codeigniter重定向功能将失败

I am using the redirect in the PHP Codeigniter library to redirect the user to the last accessed URL if they are not logged in to our portal.

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

It works fine except in one case:

When there is a # sign in the URL for ex:

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

It redirects back to http://myview.com/library

It does not take the address after the # sign.

In our front end, we use a Backbone.js to detect a # sign and fire up what needs to be done next with Javascript..

My question is if there is a way to store the whole URL in the codeigniter session variable?

The part with the # is called the fragment, and it is never transmitted to the server (unless you do it manually, as a parameter in AJAX or something). Thus, your PHP will never see it in a query URL.