0

嘿!这是我的问题,可能只是浏览器问题,但任何帮助/想法都会很棒!

几乎我有以下重定向:

header("Location: page.php#images");

在大多数现代浏览器中,它会毫无问题地重定向到 page.php#images,但在 IE 中,它似乎会去除 #images。有没有人遇到过这个?到目前为止,我唯一的选择(我认为这是一个糟糕的选择)是通过 JavaScript 重定向。

谢谢!

更新
我发送了一个简单的沙箱,无论有没有绝对 URL,它似乎都可以正常工作。我猜在我的实际应用程序中还有其他与它冲突的事情。等我弄明白了再更新,谢谢大家的回复!

更新 2
我发现了问题所在,但我仍然不确定修复。事实证明,这是一个文件输入破坏了它。您可以在此处查看它的运行情况http://www.stiprojects.com/anchor/ 它在 Firefox 中运行良好,但在 IE 中中断。重定向中的源代码是:

header("Location: http://www.stiprojects.com/anchor/index.php?one=1&two=2#/images");

你看到我没看到的东西吗?我很混乱!

4

2 回答 2

2

根据HTTP 规范Location,标头需要一个绝对路径。尝试使用绝对路径。勘误表说Location 标头中允许文档片段 (#id),但是当用户链接到带有片段的页面时的行为(例如重定向到的位置)是未定义的。http://example.org/a_redirector#thisa_redirectorhttp://example.com/destination#that

于 2009-06-08T02:06:17.960 回答
1

是的,这是真的。如果您使用绝对路径,则可以防止它:

header("Location: http://www.example.com/page.php#images");
于 2009-06-08T01:58:37.177 回答