我几乎有以下重定向:
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");
你看到我没有看到的任何东西吗?我很困惑!
答案 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");