Определите, является ли текущий URL-адрес http или https в проекте

У меня есть сайт в рамках Zend. Здесь я хочу определить, содержит ли текущий URL HTTPS или HTTP? Я использовал следующий код

if($_SERVER['HTTPS']==on){ echo "something";}else{ echo "something other";} 

Но результат неверен. Есть ли другой способ определить это? Также у меня есть еще один вопрос. Как получить полный текущий url (включая HTTP / HTTPS) с помощью php?

пожалуйста, помогите мне

заранее спасибо

Solutions Collecting From Web of "Определите, является ли текущий URL-адрес http или https в проекте"

 if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") { echo "something"; } else { echo "something other"; } 

обратите внимание, что on должно быть строкой.

Вы можете использовать методы, которые уже определены в Zend Framework, вместо явного использования $_SERVER переменных $_SERVER .

Чтобы определить, является ли соединение HTTP или HTTPS (этот код должен войти в ваш контроллер):

 if ( $this->getRequest()->isSecure() ) { echo 'https'; } else { echo 'http'; } 

Чтобы получить полный текущий URL:

 $this->getRequest()->getScheme() . '://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getRequestUri(); 

Лучший способ проверить

 if (isset($_SERVER['HTTPS']) && $_SEREVER['HTTPS'] != 'off') { //connection is secure do something } else { //http is used } 

Как указано в руководстве

Установите для непустого значения, если скрипт был запрошен через протокол HTTPS.

 Note: Note that when using ISAPI with IIS, the value will be off if the 

запрос не был выполнен по протоколу HTTPS.

вам нужно исправить проверку, это должно быть

 if ($_SERVER['HTTPS'] == 'on') 

или попробуйте выполнить функцию

 if(detect_ssl()){ echo "something";}else{ echo "something other";} function detect_ssl() { return ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1 || $_SERVER['SERVER_PORT'] == 443) } 

Это будет проверять, используете ли вы https или http и выводите текущий url.

 $https = ((!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] != 'off')) ? true : false; if($https) { $url = "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; } else { $url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; }