6

出于某种原因,当我使用header("Location")新页面重定向时会保留哈希。

所以如果你在example.com/index.html#signup

我重定向与

header("Location: /account.html");
exit;

但随后它显示example.com/account.html#signup

为什么会发生这种情况,我该如何阻止它?IEexample.com/account.html


笔记:

我正在使用 .htaccess 重定向file.htmlfile.php

RewriteRule ^([a-zA-Z0-9-_.]+)\.html$ $1.php [L]
4

2 回答 2

5

“如何停止它”的简单答案是在Location标头中指定一个空哈希:

header('Location: /account.html#');

但是,这种行为并不能得到全面保证。在我的快速测试中,它似乎适用于 WebKit 和 IE9。尽管如此,您还是偶然发现了 HTTP 规范中的一个黑洞

于 2012-09-14T21:53:51.327 回答
1

我正在寻找适用于 Firefox 的答案。在我的猫保持喵喵叫的时候到处冲浪后,它引导我找到最终的解决方案:

die('<script> window.location='your-url-without-hash';</script>');

有时您想保留哈希,有时您不想保留,因为跨浏览器很重要,所以最好控制客户端浏览器重新加载并终止哈希。

于 2015-09-15T05:52:50.837 回答