【问题标题】:Redirect without changing the browser url重定向而不更改浏览器 url
【发布时间】:2014-08-02 18:10:32
【问题描述】:

我有以下网址,

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

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

我试过了,但由于对mod_rewite缺乏了解,我什么都做不了。

请帮忙,提前谢谢

【问题讨论】:

  • 你能发布用于这些重定向的 php 代码吗?
  • 我根据条件使用了header('Location:/home.php')
  • 使用 htaccess 您只能删除文件扩展名。如果您只想显示 www.example.com,请从 ajax 或 iframe 加载内容。
  • 或者你可以使用 ajax 来更新容器内容...
  • 亲爱的@user3357227,您找到解决方案了吗?如果有,请在评论中指导我。谢谢。

标签: php regex .htaccess mod-rewrite apache2


【解决方案1】:

如果您想在登录后保留页面,在用户未登录时保留相同的 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。

最后一点是,您应该尽可能完全地分离代码和视图。

【讨论】:

  • 嗨,我想知道在哪里添加此代码,因为我遇到了一些错误
【解决方案2】:

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

【讨论】:

  • 我不想重定向,我只希望当我重定向到 /home.php 或 /login.php 时 url 保持为 www.example.com,就像例如:facebook.com
  • 就像我说的,你不能用 mod_rewrite 做到这一点,因为用户需要告诉网络服务器他想要什么。 Facebook 使用 AJAX (Javascript) 加载页面。
  • 我不同意你的观点,你可以看到当用户已经登录时它会重定向到主页而不更改url,如果没有登录它将重定向到登录页面而不更改url
  • 是的,因为 Facebook 使用 Javascript 来加载页面并操作 url。
【解决方案3】:

当用户在页面之间导航时,您应该在页面布局中使用 iframe html 标记以使浏览器的 url 保持 www.example.com。不重定向也不重写不适合这些目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多