First your code will not catch none wwww
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# the first two lines above will catch all http request so , nothing will
# pass to the following
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Make your code like this :
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.yoursite.com%{REQUEST_URI} [L,R=301]
to exclude spacific page add this
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !^/your/path/to/pages$
RewriteRule ^ https://www.yoursite.com%{REQUEST_URI} [L,R=301]
Note: clear your browser cache and test it.
update:
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} my-page [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Try this , it means catch any request contains https
& your page then force into http