javascript - easy - ssl open




檢測HTTP或HTTPS,然後在JavaScript中強制使用HTTPS (6)

有什麼方法可以檢測HTTP或HTTPS,然後強制JavaScript使用HTTPS?

我有一些代碼用於檢測HTTP或HTTPS,但我無法強制它使用https:

我正在使用window.location.protocol屬性來設置https:任何網站https:然後刷新頁面,希望重新加載一個新的https'ed URL加載到瀏覽器。

if (window.location.protocol != "https:") {
   window.location.protocol = "https:";
   window.location.reload();
}


不是一種Javascript方式來回答這個問題,但如果你使用CloudFlare,你可以編寫頁面規則 ,將用戶重定向到HTTPS並且它是免費的。 在CloudFlare的頁面規則中看起來像這樣:


嘗試這個

if (location.protocol != 'https:')
{
 location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
}

我剛剛通過Pui Cdm測試過所有腳本變體,包括上面的答案以及使用php,htaccess,服務器配置和Javascript的許多其他腳本變體,結果是腳本

<script type="text/javascript">        
function showProtocall() {
        if (window.location.protocol != "https") {
            window.location = "https://" + window.location.href.substring(window.location.protocol.length, window.location.href.length);
            window.location.reload();
        }
    }
    showProtocall();
</script> 

由提供的效果最佳,您可以在java腳本中添加更多安全性。


這個怎麼樣?

if (window.location.protocol !== 'https:') {
    window.location = 'https://' + window.location.hostname + window.location.pathname + window.location.hash;
}

不過,理想情況下,你可以在服務器端進行。


<script type="text/javascript">
        function showProtocall() {

            if (window.location.protocol != "https") {
                window.location = "https://" + window.location.href.substring(window.location.protocol.length, window.location.href.length);
                window.location.reload();
            }
        }
        showProtocall();
</script>






window.location