下午好!问题出现了。我正在使用 PHP。用户访问 example.com/in/,脚本重定向到 http://example.com/ (使用 header("Location: ...") ;)。如何避免将 example.com/in/ 保存在浏览器历史记录中?
我和你遇到了同样的问题,这就是我发现的:
PHP:
php 中没有这样的函数,尽管有一种方法可以替换 php 中以前的类似标头,但我不认为这就是您要找的! (php手册)
Javascript:
有几种函数和方法可以直接或间接操作浏览器历史记录:
window.location.replace("http://...")
重定向用户,而不将当前页面保存到浏览器历史记录中window.history.back()
将用户重定向到浏览器历史记录中的后一页(其作用与浏览器的后退按钮完全相同)window.history.forward()
与 window.history.back() 相同,但向前window.history.go(index)
从会话历史记录中加载特定页面,使用其在会话历史记录中的相对位置作为索引(当前页面的索引为0)history.replaceState()
和 history.pushState()
操作浏览器历史记录的更多信息,请阅读 this回答您的问题:
根据您正在做什么,您可以使用这些 js 方法之一。不幸的是,如前所述,如果我没记错的话,PHP 中没有这样的东西。
虽然此页面在谷歌结果中弹出的位置相当高,但这个问题已在其他地方得到回答,建议先发送 301 标头,然后发送位置标头。
发送 301 标头。 header('HTTP/1.1 301 永久移动');
2000 年代的 IIRC Mozilla 规范提到不会在历史记录中存储 301,现在我相信 Chrome 不会在历史记录中存储与用户交互无关的位置更改。
话虽这么说,javascript选项可能更适合您的需求(您阅读本文的人,因为OP可能很久以前就解决了他们的问题)。