I had same issue, for me this didn't work as well:
RewriteRule ^/page1.html$ /dir1/page.html [R=301,L]
What worked for me is to remove the leading slash, and add soft tailing slash with ?, like this:
RewriteRule ^(page1.html)/?$ dir1/page.html [R=301,L]