product/([0-9]+)?$
translates to product/
followed by any number or nothing (and nothing more, not even a trailing slash). This doesn’t sound like the thing you want to achieve.
Instead, try the following
function wpse33551_rewrites_init(){
add_rewrite_rule(
'^([^/]+)/([0-9]+)/?$',
'index.php?post_type=artikelen&p=$matches[2]',
'top'
);
}
which translates to:
^
start of the string (ie, there is nothing else in front)([^/]+)
: at least one character that is not/
/
: a slash([0-9]+)
: at least one number/?
: zero or one (trailing) slash$
: end of the string