Your rewrite rule format is not correct. The $rewrite
argument must point to index.php
with query vars set so WordPress can create the default query:
add_action( 'init', 'wpa103850_init' );
function wpa103850_init()
{
add_rewrite_rule(
'^([^/]+)([0-9]{1,2}).htm$',
'index.php?name=$matches[1]&page=$matches[2]',
'top'
);
}
However, this will still not work correctly, due to the canonical redirect. WordPress wants to enforce a single URL for any given post/page. You’ll have to remove that filter to prevent that from happening, but note that this will have other possibly undesirable side-effects, as no canonical redirects will happen.
remove_filter( 'template_redirect', 'redirect_canonical' );
It may be possible to selectively apply the canonical redirect, but I haven’t the time to go digging in source at the moment to determine that!