Force Rewrite Query Var On Hierarchical (Nested) Page

Just in case any one needs this:

/* Register Query Var
----- */
function my_queryvar_params( $query_v ) {
    $query_v[] = "my_var";
    return $query_v;
};
add_filter('query_vars',  'my_queryvar_params');
/* Rewrites
----- */
function setup_filter_rewrites(){
    add_rewrite_rule('^my-parent/my-page\/([0-9]+)\/?', 'index.php?pagename=my-parent/my-page&my_var=$matches[1]', 'top'); // As @Milo mentioned, the pagename paramenter needs to reflect the path hierarchy
};
add_action( 'init', 'setup_filter_rewrites' );
/* Force Redirect
----- */
function my_redirect_check() {
    if (isset($_GET['my_var'])) {
        if ($_GET['my_var'] != '') {
            if ($_SERVER["HTTPS"]) {$location = 'https://';}
            else {$location = 'http://';}
            $location .= $_SERVER['SERVER_NAME'];   
            $location .= strtok($_SERVER['REQUEST_URI'],'?');
            $location = trailingslashit($location);
            $location .= $_GET['my_var'];
            $location = trailingslashit($location);                          
            wp_redirect($location); exit;
        };
    };
};
add_action('init','my_redirect_check');