Redirect Homepage to another page when user login

If you want to redirect the user after login use the below code:

/**
 * WordPress function for redirecting users on login based on user role
 */
function wpdocs_my_login_redirect( $url, $request, $user ) {
    if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
        if ( $user->has_cap( 'administrator' ) ) {
            $url = admin_url();
        } else {
            $url = home_url( '/setting/' );
        }
    }
    return $url;
}
 
add_filter( 'login_redirect', 'wpdocs_my_login_redirect', 10, 3 );

If you want to restrict the user to access the homepage use below code:

function redirect_user_to_page(){
    if ( is_user_logged_in() && is_front_page() ) {
     $user = wp_get_current_user();
     if ( !in_array( 'administrator', (array) $user->roles ) ) {
        wp_redirect('https://sample.com/setting');
        exit();
     }
     
    } else {
        // user not logged in, nothing
    }
}
add_action('wp_head', 'redirect_user_to_page');