url rewriting on custom post type

I just realized i used different kind of rewriting which didn’t require @Jacob’s codes (using add_rewrite_endpoint)

add_action('init', 'wpse42279_add_endpoints');
function wpse42279_add_endpoints()
{
    add_rewrite_endpoint('play', EP_PERMALINK);
}

And then i used this conditionals on the single page:

global $post;
$pid = $post->ID;
$var = get_query_var( 'play' ); 
if( !empty($var) and $var == $pid) :
// do stuff
endif;

Now here’s the working pretty link:

example.com/custompostype/post-title/play/123/

Instead of:
example.com/custompostype/post-title/?play=123

However the problem now is that the old url still exist (example.com/custompostype/post-title/?play=123) and still accessible/visible. Is it possible to make it work like how this code works:

example.com/?custompostype=321

(It redirects to the pretty link: example.com/custompostype/post-title/)