我想重定向一个条件为true的用户,但我不能轻易写header('Location : something');
,因为在我的情况下已经发送了标题(已显示HTML内容)。我知道如果用户启用了JavaScript,我可以编写类似的东西:
<script type="text/javascript">
document.location.href = "http://google.pl";
</script>
但我想重定向每个用户,包括那些没有启用gov JS的用户。我补充说,这种情况发生在文档的<body>
部分。有没有办法做到这一点?我要求每个解决方案,它们必须不适用于PHP。
PS我读过that文章,但我认为它无法帮助我。
答案 0 :(得分:3)
使用 <noscript>
标记。
像这样的东西
<noscript>
<meta http-equiv="refresh" content="0; url=http://example.com/somepage.html" />
</noscript>
答案 1 :(得分:1)
这是不可能的,我想是的。但是你可以为浏览器实现一条消息,告诉用户他/她应该激活javascript。
<noscript>
You can browse this site without having JavaScript enabled,
but to experience the full benefits of the site, please enable JavaScript.
</noscript>
但是你可以继续使用 php 解决方案。
添加
ob_start()
在php页面的开头,然后使用
header('Location : something');
我希望能帮助你。
答案 2 :(得分:0)
而不是重定向非Javascript用户重定向Javascript用户
如果用户禁用了javascript,则首先向用户提供应重定向的页面。
如果用户启用了javascript,那么你编写javascript来将用户重定向到页面,所以如果用户启用了javascript,那么他将被重定向到正确的页面但是如果他禁用了javascript则脚本不起作用,他留在实际应该重定向的页面...希望这有用......答案 3 :(得分:0)
我使用ob_end_clean();
函数通过cleaning output buffer解决了它,然后使用PHP header();
。当然,在文档开头我写了ob_start();
并在最后ob_end_flush();
。您可以阅读有关输出缓冲here的更多信息。