it-swarm.dev

HTTP 또는 HTTPS가 HTTPS를 사용하는 것을 나타냅니다.

HTTP 또는 HTTPS를 감지하고 JavaScript로 HTTPS 사용을 강제 할 수 있습니까?

HTTP 나 HTTPS를 탐지하는 코드가 있지만 https:를 강제로 사용할 수는 없습니다.

나는 window.location.protocol 속성을 사용하여 사이트가 무엇이든간에 https:를 설정 한 다음 페이지를 새로 고침하여 브라우저에로드 된 새 https'ed URL을 다시로드합니다.

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

이 시도

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

location.protocol을 새 URL로 이동 . 아무것도 분석 할 필요가 없습니다.

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

Firefox 49에는 https이 작동하지만 https:는 작동하지 않는 버그 이 있습니다. 말하자면 Firefox 54에서 수정 됨 .

45
sam

단지 temporary 사용자를 https로 리디렉션하고 브라우저가이 리디렉션을 저장하지 않기 때문에 좋지 않습니다.

당신은 웹 서버 (아파치, nginx 등)에 대한 작업을 설명합니다 http 301, http 302

18
b1_

이것은 어떤가요?

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

그래도 서버 측에서 처리하는 것이 가장 이상적입니다.

13
keirog
if (location.protocol == 'http:')
  location.href = location.href.replace(/^http:/, 'https:')
11
Steven Penny

Javascript가 아닌 CloudFlare를 사용하면 사용자를 HTTPS로 훨씬 빨리 리디렉션하고 무료입니다 페이지 규칙 을 작성할 수 있습니다. CloudFlare의 페이지 규칙에서 다음과 같이 표시됩니다.

enter image description here

4
Mikeumus

넌 할 수있어:

  <script type="text/javascript">        
        if (window.location.protocol != "https:") {
           window.location.protocol = "https";
        }
    </script>
0
M.BRAHAM

기능적인 방법

window.location.protocol === 'http:' && (location.href = location.href.replace(/^http:/, 'https:'));