Лучший способ работать с версиями узлов - использовать NVM или менеджер версий узлов после установки, используя следующие команды:
nvm list (shows you the list of installed nodejs version)
nvm install nodeversion (to install the node version, if latest use @latest)
nvm use 10.515.. (to use a perticular node version)
Это всегда должно работать, даже если $ _ SERVER ['HTTPS']
не определен:
function isSecure() {
return
(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| $_SERVER['SERVER_PORT'] == 443;
}
Код совместим с IIS.
Из документации PHP.net и комментариев пользователей :
1) Установите непустое значение, если сценарий был запрошен через протокол HTTPS.
2) Обратите внимание, что при использовании ISAPI с IIS значение будет «выключено», если запрос не был сделан через протокол HTTPS. (Такое же поведение было зарегистрировано для IIS7, использующего PHP как приложение Fast-CGI).
Кроме того, на серверах Apache 1.x (и неработающих установках) может не быть определено $ _ SERVER ['HTTPS']
, даже при безопасном подключении. Хотя это и не гарантируется, соединения через порт 443, согласно соглашению , вероятно, используют безопасные сокеты , поэтому требуется дополнительная проверка порта.
Дополнительное примечание: если между клиентом и вашим сервером есть балансировщик нагрузки, этот код проверяет не соединение между клиентом и балансировщиком нагрузки, а соединение между балансировщиком нагрузки и вашим сервером. Чтобы проверить первое соединение, вам нужно будет проверить с помощью заголовка HTTP_X_FORWARDED_PROTO
, но это сделать гораздо сложнее; см. последние комментарии под этим ответом.
Согласно сообщению hobodave: «Установите непустое значение, если сценарий был запрошен через протокол HTTPS.»
if (!empty($_SERVER['HTTPS']))
{
$secure_connection = true;
}
Вы можете проверить $ _ SERVER ['SERVER_PORT']
, поскольку SSL обычно работает на порту 443, но это не надежно.
Чача, согласно документации PHP: «Установите непустое значение, если скрипт был запрошен через протокол HTTPS». Таким образом, ваш оператор if будет возвращать false во многих случаях, когда HTTPS действительно включен. Убедитесь, что $ _ SERVER ['HTTPS']
существует и не является пустым. В случаях, когда HTTPS установлен неправильно для данного сервера, вы можете попробовать проверить, если $ _ SERVER ['SERVER_PORT'] == 443
.
Но обратите внимание, что некоторые серверы также устанавливают $ _SERVER ['HTTPS']
на непустое значение, поэтому обязательно проверьте и эту переменную.
Ссылка: Документация для $ _ SERVER
и $ HTTP_SERVER_VARS
[устарело]