本代码首先通过head进行301转向,如果失败,则通过http-equiv=”Refresh”转向,如果不行再通过js进行转向,再不行直接在页面上输出链接地址让用户自己点击链接转向
function safe_redirect($url, $exit=true) { // Only use the header redirection if headers are not already sent if (!headers_sent()){ header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $url); // Optional workaround for an IE bug (thanks Olav) header("Connection: close"); } // HTML/JS Fallback: // If the header redirection did not work, try to use various methods other methods print '<html>'; print '<head><title>Redirecting you...</title>'; print '<meta http-equiv="Refresh" content="0;url='.$url.'" />'; print '</head>'; print '<body onload="location.replace(\''.$url.'\')">'; // If the javascript and meta redirect did not work, // the user can still click this link print 'You should be redirected to this URL:<br />'; print "<a href="$url">$url</a><br /><br />"; print 'If you are not, please click on the link above.<br />'; print '</body>'; print '</html>'; // Stop the script here (optional) if ($exit) exit; }