Load specific page template based on URI

If you can count on the URI always following the same pattern, e.g. /link/###, then you can selectively load a different template using a query variable and a rewrite (will need to flush rewrites to test):

/**
 * Register a query variable to check against for loading a template. 
 *
 * @param array $vars Registered query variables.
 * @return array (Maybe) filtered list of query variables.
 */
function wpdocs_add_query_var( $vars ) {
    $vars[] = 'my-template';
    return $vars;
}
add_filter( 'query_vars', 'wpdocs_add_query_var' );

/**
 * Register an endpoint using the new query variable.
 */
function wpdocs_add_rewrite_rule() {
    add_rewrite_rule( 'link/([0-9]+)?$', 'index.php?my-template=1', 'top' );
}
add_action( 'init', 'wpodcs_add_rewrite_rule' );

/**
 * Load a template based on the presence of a query variable in the request.
 *
 * @param string $template Template file.
 * @return string (Maybe) filtered template file path.
 */
function wpdocs_load_page_template( $template ) { 
    if ( ! is_admin() ) {
        if ( get_query_var( 'my-template' ) ) {
            $template = get_template_directory() . '/my-template.php';
        }
    }
    return $template;
}
add_filter( 'template_include', 'wpdocs_load_page_template' );