Есть ли способ обнаружить HTTP или HTTPS и затем принудительно использовать HTTPS с JavaScript?
У меня есть несколько кодов для обнаружения HTTP или HTTPS, но я не могу заставить его использовать https:
.
Я использую свойство window.location.protocol, чтобы установить любой сайт, чтобы https:
затем обновить страницу, чтобы, надеюсь, перезагрузить новый URL-адрес https, загруженный в браузер.
if (window.location.protocol != "https:") {
window.location.protocol = "https:";
window.location.reload();
}
javascript
https
window.location
зарегистрированный пользователь
источник
источник
Ответы:
Попробуй это
location.href = blah
добавляет это перенаправление в историю браузера. Если пользователь нажмет кнопку «Назад», он будет перенаправлен обратно на ту же страницу. Лучше использовать, такlocation.replace
как он не добавляет это перенаправление в историю браузера.источник
window
и нетdocument
?!==
?location.replace(url)
было бы намного лучше, чемlocation.href = url
для этого случая. Вы не хотите, чтобы это перенаправление в истории браузера или пользователя, нажимающего кнопку «Назад», просто чтобы было перенаправлено снова.Настройка location.protocol позволяет перейти к новому URL . Не нужно ничего анализировать / нарезать.
Firefox 49 имеет ошибку , где
https
работает , ноhttps:
не делает. Сказано, что будет исправлено в Firefox 54 .источник
if window.location.href.match('http:') window.location.href = window.location.href.replace('http', 'https')
работает на последних FF и Chrome.location.protocol = "https";
кажется, работает, хотя в Firefox 28location.replace
вместо этого.Это не очень хорошая идея, потому что вы просто временно перенаправляете пользователя на https, а браузер не сохраняет это перенаправление.
Вы описываете задачу для веб-сервера (apache, nginx и т. Д.) Http 301, http 302
источник
Как насчет этого?
В идеале, вы бы сделали это на стороне сервера.
источник
источник
Не Javascript способ ответить на этот вопрос, но если вы используете CloudFlare, вы можете написать правила страницы, которые намного быстрее перенаправляют пользователя на HTTPS, и это бесплатно. Похоже на это в правилах страницы CloudFlare:
источник
Ты можешь сделать:
источник
Функциональный способ
источник
Вы должны проверить это: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
Добавьте этот метатег в ваш index.html внутри головы
Надеюсь, это помогло.
источник
Мне нравятся ответы на этот вопрос. Но чтобы быть креативным, я хотел бы поделиться еще одним способом:
источник
В приведенном ниже коде предполагается, что переменная 'str' содержит строку http: // .... Он проверяет, является ли он https, и если true не делает ничего. Однако, если это http, он заменяет http на https.
источник
источник
Привет, я использовал это решение работает отлично. Нет необходимости проверять, просто используйте https.
источник
Я только что проверил все варианты скриптов, протестированные Pui Cdm , включил ответы выше и многие другие, используя php, htaccess, конфигурацию сервера и Javascript, в результате чего скрипт
предоставленный vivek-srivastava работает лучше всего, и вы можете добавить дополнительную безопасность в сценарии Java.
источник