Обнаружение 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 и браузер не сохраняет это перенаправление.
вы описываете задачу для web-сервера (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:
Привет, я использовал это решение отлично работает.Нет необходимости проверять, просто используйте 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.