0

今日、Wordpress を最新バージョン (3.5.1) に更新しようとしました。これをした後、私はもう開くことができませwp-admin/index.phpん。404エラーが発生します。ファイルを調べたところ、関数が呼び出されるとindex.php壊れます。auth_redirect()その関数のコードは次のとおりです。

function auth_redirect() {
    // Checks if a user is logged in, if not redirects them to the login page
    $secure = ( is_ssl() || force_ssl_admin() );
    $secure = apply_filters('secure_auth_redirect', $secure);
    // If https is required and request is http, redirect
    if ( $secure && !is_ssl() && false !== strpos($_SERVER['REQUEST_URI'], 'wp-admin') ) {
        if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
            wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
            exit();
        } else {
            wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
            exit();
        }
    }
    if ( is_user_admin() )
        $scheme = 'logged_in';
    else
        $scheme = apply_filters( 'auth_redirect_scheme', '' );
    if ( $user_id = wp_validate_auth_cookie( '',  $scheme) ) {
        do_action('auth_redirect', $user_id);
        // If the user wants ssl but the session is not ssl, redirect.
        if ( !$secure && get_user_option('use_ssl', $user_id) && false !== strpos($_SERVER['REQUEST_URI'], 'wp-admin') ) {
            if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
                wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
                exit();
            } else {
                wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
                exit();
            }
        }
        return;  // The cookie is good so we're done
    }
    // The cookie is no good so force login
    nocache_headers();
    $redirect = ( strpos( $_SERVER['REQUEST_URI'], '/options.php' ) && wp_get_referer() ) ? wp_get_referer() : set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
    $login_url = wp_login_url($redirect, true);
    wp_redirect($login_url);
    exit();
}

ただし、エラーメッセージが表示されず、404ページが表示されるだけで、Firefoxでは正しくリダイレ​​クトされていないと表示されるため、壊れている特定の部分が見つかりません。

誰かがこれについて私を助けてもらえますか?

ありがとうございました!

いくつかの追加情報:

それが壊れている行を見つけました。それは次のとおりです。

wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );

反響$_SERVER['HTTP_HOST']$_SERVER['REQUEST_URI']、期待どおりの結果が得られます (www.domain.com/blog)。ただし、機能しません:(

4

1 に答える 1

0

私は過去に同様の問題を抱えていました。しかし、それは通常、新しいプラグインのインストールを伴います...いくつかのこと:

  1. 使用可能なRAMを増やしてみてください。WPは過去にこれと同様の面倒を私に与えました、そしてそれはRAM関連でした。.htaccessファイルのRAMを増やすことができるはずです
  2. これは本番システムですか?そうでない場合は、おそらくすべてのプラグインをメモし、それらを削除して、システムにアクセスしてみてください。それが機能する場合は、問題がプラグインベースであり、WP自体ではないことがわかります。次に、プラグインを1つずつ体系的に追加し直して、問題の原因となったプラグインを特定できます。
于 2013-02-11T12:58:50.057 に答える