Обнаружение HTTP или HTTPS, а затем принудительно HTTPS в JavaScript
есть ли способ обнаружить HTTP или HTTPS, а затем принудительно использовать HTTPS с JavaScript?
у меня есть некоторые коды для обнаружения HTTP или HTTPS, но я не могу заставить его использовать https:
.
Я использую
9 ответов:
попробуй такое
if (location.protocol != 'https:') { location.href = 'https:' + window.location.href.substring(window.location.protocol.length); }
настройки местоположения.протокол переходит к новому URL. Не нужно ничего разбирать / нарезать.
if (location.protocol !== "https:") location.protocol = "https:";
Firefox 49 имеет ошибка здесь
https
работает, аhttps:
нет. Говорят,исправлено в Firefox 54.
Это не хорошая идея, потому что вы просто временное перенаправление пользователя на https и браузер не сохраняет это перенаправление.
вы опишете задачу для веб-серверов (Apache, Nginx и т. д.) http 301, http 302
Как насчет этого?
if (window.location.protocol !== 'https:') { window.location = 'https://' + window.location.hostname + window.location.pathname + window.location.hash; }
В идеале вы бы сделали это на стороне сервера, хотя.
Не Javascript способ ответить на это, но если вы используете CloudFlare вы можете написать страница правила что перенаправить пользователя гораздо быстрее на HTTPS, и это бесплатно. Выглядит это в правилах страницы CloudFlare:
Привет я использовал это решение работает perfectly.No нужно проверить, просто используйте https.
<script language="javascript" type="text/javascript"> document.location="https:" + window.location.href.substring(window.location.protocol.length, window.location.href.length); </script>
приветствует BrAiNee
<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>
Я только что проверил все варианты скрипта 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 script.