I had the same problem. I have changed url to https:// without SSL. The settings page was redirected and ewerithing was broken. I have spend more then 3 hours to resolve it. Now I do not remember exactly what I did, but it was like:
- Go to wp-login.php, make a copy for backup
1.1 Delete this all
if ( force_ssl_admin() && ! is_ssl() ) { 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(); } }
1.2 Delete this all:
setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
1.3 Delete this too:
if ( ! $user || is_wp_error( $user ) ) { setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); if ( $user && $user->get_error_code() === 'expired_key' ) wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); else wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); exit; }
1.4 And this:
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
1.5 Delete this:
if ( !empty($_POST['log']) && !force_ssl_admin() ) { $user_name = sanitize_user($_POST['log']); $user = get_user_by( 'login', $user_name ); if ( ! $user && strpos( $user_name, '@' ) ) { $user = get_user_by( 'email', $user_name ); } if ( $user ) { if ( get_user_option('use_ssl', $user->ID) ) { $secure_cookie = true; force_ssl_admin(true); } } }
1.6 Then delete this:
$redirect_to = preg_replace('|^http://|', 'https://', $redirect_to);
- Then you can go to http://url.com/wp-login.php and login. go to settings in admin panel and change back urls.
- put backup with wp-login.php to return to stable version.
- Delete cookies
I could make a mistake, but i did something like this and it helped me to resolve problem. The idea anyway is get to admin panel to chenge back urs from https:// to http://