PHP重定向不起作用(内部if语句)

时间:2015-10-20 10:30:04

标签: php html redirect http-headers

以下代码将当前页面与站点根目录进行比较,如果不同则重定向。

这在本地工作正常,但不在服务器上。

<?php

ob_start();

require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/includes.php');

if (SITE_FULL_URL !== SITE_URL . '/') {

    redirect(SITE_URL);

} else {

    /* Page Switcher */
    switch ($urlarray[0]) {
        case '':
            require_once($_SERVER['DOCUMENT_ROOT'] . '/mod/home/index.php');
            break;
        default:
            require_once($_SERVER['DOCUMENT_ROOT'] . '/mod/404/index.php');
            break;
    }

}

ob_end_flush();

只要重定向功能放在if语句中,它就会停止工作。

重定向功能如下:

function redirect($url) {
    if(!headers_sent()) {
        //If headers not sent yet... then do php redirect
        header('Location: '.$url);
        exit;
    } else {
        //If headers are sent... do javascript redirect... if javascript disabled, do html redirect.
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo '</noscript>';
        exit;
    }
}

0 个答案:

没有答案