【问题标题】:Make redirect to new url but remove previous from history重定向到新网址,但从历史记录中删除以前的网址
【发布时间】:2015-12-02 10:00:11
【问题描述】:

如何用一个新的文档替换当前的 URL 文档但从文档历史记录中删除当前文档的 URL,这意味着无法使用“返回”按钮导航回到原始文档而不存储在浏览器历史列表中。

我可以通过 jQuery 或 javascript 通过

  window.location.replace("newURL");

但我需要在 php.HOW 中这样做?

【问题讨论】:

  • “来自 PHP”是什么意思?你的意思是当初始页面加载时,你想重定向浏览器历史记录中没有原始页面的残余?还是您的意思是来自 ajax 调用?
  • 加载初始页面时,我想在浏览器历史记录中不残留原始页面的情况下重定向
  • 我认为一个简单的 302 重定向会做你想要的。原始 URL 不会出现在后退按钮列表中,但会出现在历史列表中(用于跟踪“访问过的”链接)。这应该是所有浏览器的工作方式。
  • 我也不想出现在历史列表中,因为这个页面用于控制,我不想让任何人知道它
  • 别以为你能做到。如果用户在浏览器中输入一个 URL 或单击该链接,它将在历史记录中。如果您不希望历史记录中包含 URL 参数,请使用表单 POST,因为表单内容不在历史记录中。此外,如果它是用户一开始就创建的可点击链接,那么你有点自欺欺人地认为这是一个秘密。

标签: javascript php jquery url-redirection http-redirect


【解决方案1】:

如果您在页面http://www.something.de/ 上执行<?php header('Location: http://www.abc.de/'); ?>,则页面http://www.something.de/ 将不会在浏览历史记录中可见,用户也无法返回。这是你要求的吗?

【讨论】:

    【解决方案2】:

    如果您根本不希望浏览器历史记录中的页面有任何残留,那么您不能将浏览器发送到那里,因为它会跟踪历史记录中所有访问过的页面,以便正确显示已访问过的链接。据我所知,没有办法阻止浏览器跟踪访问过的链接。如果您从服务器执行 302 位置重定向,则原始页面和重定向页面都将在浏览器历史记录中。原页面不会出现在后退按钮列表中,而是会出现在历史记录中。

    如果您试图降低可见性的 URL 部分是 URL 的查询参数,那么您可以使用表单发布而不是常规页面加载,因为浏览器不会将表单参数存储在历史。

    否则,您可能需要将您的 URL 与 Ajax 调用一起使用(因为它不会存储在历史记录中),然后使用客户端 window.location.replace(...) 转到最终 URL,这个想法是您的 URL不想公开共享永远不会是浏览器页面访问的 URL,而只是用于 Ajax 调用的 URL。

    【讨论】:

      【解决方案3】:

      它对我有用

      <button onclick="goBack()"></button>
      
      <script>
              function goBack() {
                  window.history.back();
                  window.location.replace('url');
              }
      </script>
      

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案4】:

      如果要清除上一页,请尝试使用“history.back();”然后设置你的 windows.location。

      【讨论】:

        猜你喜欢
        • 2012-05-31
        • 2021-10-21
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-05
        • 1970-01-01
        • 2014-10-22
        相关资源
        最近更新 更多