I am thinking that if you follow Chris' sound advice, and find yourself changing domain names, you have to edit maybe 50 different links pointing to 4 secure pages, and however many links pointing from the secure pages, scattered across your site.
You use relative paths among your nonsecure pages and use relative paths among your secure pages, but need to use absolute paths between the two groups.
I think you could do this using htaccess Redirects, but you would in each case want to create relative links that point to nonexistent places for each absolute link.
For each link from http to https, and for each link from https to http, select a path to nowhere for use in your link tag, and add a corresponding Redirect to your htaccess in the root of the web site:
Redirect /does-not-exist-https-page1/
https://example.com/page1/
and going the other way,
Redirect /does-not-exist-http-page23/
http://example.com/page23/
Now, if you change domain names, you just need to edit one htaccess file to make the changes complete.
Do not link to an actual page with the relative links to the opposite secure/nonsecure pages, for if you do, ALL links to that page will become absolute links by way of the redirect, which would put an extra burden on your server.
My site uses a separate folder for each page in most instances, and therefore, I have Web addresses that end in example.com/ and example.com/members/. This keeps outside links to a page valid even if I choose to use index.cgi or index.php instead of index.shtml. In case you point to pages instead of folders, then your Redirect would look like this:
Redirect /does-not-exist-https-page32.html
https://example.com/page32.html