header使用锚标记和IE7重定向

时间:2009-06-08 01:51:32

标签: php html anchor

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

我几乎有以下重定向:

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");

你看到我没有看到的任何东西吗?我很困惑!

2 个答案:

答案 0 :(得分:2)

Location标头需要HTTP specification的绝对路径。尝试使用绝对路径。 errata表示文件片段(#id)在Location标头中是允许的,但是当用户链接到带有片段的页面时的行为(例如http://example.org/a_redirector#this a_redirector重定向到http://example.com/destination#that)未定义。

答案 1 :(得分:1)

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

header("Location: http://www.example.com/page.php#images");