我遇到了php头重定向无法在safari上工作的问题
if (!isset($lang))
{
header('Location: http://domain.com/en/home');
}
我已经读过这可以用JS做得相当简单,但是如果设置了$ lang,就不知道怎么做条件。
应该,我只是在“php if”中执行js,或者有更好/更聪明的方法来执行它。
感谢。
答案 0 :(得分:1)
首先,如果设置了重定向标题,则应该停止执行php:
if (!isset($lang))
{
header('Location: http://domain.com/en/home');
exit;
}
注意:要使其正常工作,您需要先设置此标头,然后再设置任何doctype
。此外,exit
可防止将任何其他内容发送到broswer(内容,其他标题等)。混合标题可能会导致不必要的行为。
其次,你可以这样做:
if (!isset($lang))
{
?>
<script>
window.location = "http://domain.com/en/home";
</script>
<?php
}
答案 1 :(得分:1)
使用Java Script
if (!isset($lang))
{
?>
<script>
location.href = "http://domain.com/en/home";
</script>
<?php
}
答案 2 :(得分:1)
您可以尝试使用ob_start()
ob_start()//Define at the top of the php page.
if (!isset($lang))
{
header('Location: http://domain.com/en/home');
exit;
}
答案 3 :(得分:1)
您可以使用echo
打印HTML代码<script>
,并将JavaScript代码放在此代码中。
if (!isset($lang)){
echo "
<script>
window.location = "http://domain.com/en/home";
</script>
";
}