当然サーバサイドで対応するのが良いのですが、フロントエンドのしごとをしていると、「サーバ側の改修が不可能のでフロントでなんとかしてください」ということが稀にあります。
もしも、そんな状況で、httpできたアクセスをhttpsにリダイレクトしたかったら、
愚直に掛けば、
location.replace(location.href.replace(/^http:/, "https:"));
こんな感じでしょう。
https以外をすべてhttpsにリダイレクトするなら、
if (location.protocol !== "https:") { location.replace("https:" + location.href.substring(location.protocol.length)); }
という感じになりますが、
本当に極稀に簡単な修正をhtmlファイルを開いて確認することがあるので、
基本的には愚直に書いたバージョンを使ってます。
(後者だとfile:///もhttpsにリダイレクトされてしまうため)
注意事項としては、
- なるべくheadタグの上の方に書く
- PVが倍になるリスクあり
- httpsからhttpにリダイレクトされる環境だと無限ループが起こる
の3点です。