重定向而不更改浏览器url


Redirect without changing the browser url

我有以下url,

www.example.com/home.php and
 www.example.com/login.php

当我从php重定向到这些页面时,浏览器的url应该保持www.example.com。

我已经尝试过了,但是由于缺乏mod_rewite的知识,我无法做任何事情。

请帮忙,提前谢谢

如果您希望在用户未登录时将页面保留到相同的URL(我们假设为www.example.com),这很容易:

在www.example.com中会加载index.php,所以我们应该修改index.php的内容。

当用户未登录时,它有以下内容:

include("htmls/index.html"); // index.html could contain whatever you like

但是你添加了这个条件,上面的行在一个条件中:

if(isset($_POST['form-submit']))
{
   // do the login process and if success
   include("htmls/index_loggedin.html");
}
else if(is_user_logged_in()===true)
{
  include("htmls/index_loggedin.html"); // 
}
else
{
  include("htmls/index.html"); // means the user has not submitted anything and is also not logged in
}

上面的代码表示,如果用户已经登录,处理他/她的登录,然后包含对于已登录用户的视图,如果用户已经登录,也会向他/她显示已登录用户的视图,否则,如果用户没有登录,也没有发送登录请求,则向他显示未登录用户的基本视图。我假设你的表单的提交按钮命名为"form-submit"。

然而,上述命名只是为了清晰起见。例如,可以将index.html和index_loggedin.html合并为一个view_index.php,然后将主index.php的条件复制到view_index.php中。

最后一个注意事项是,您应该尽可能完全地将代码和视图分开。

使用mod_rewrite不能这样做。Apache如何知道你想要home.php还是login.php?您可能希望使用AJAX在后台加载文件,然后显示内容。

您应该在页面布局中使用iframe html标记,以便当用户在页面之间导航时,浏览器的url仍然为www.example.com。