Поддержка серверов

CSiteCheckerTest::check_localredirect: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=175642

//    CSiteCheckerTest::check_localredirect()
//    /bitrix/modules/main/classes/general/site_checker.php:1809

    function check_localredirect()
    {
        $strSERVER = '';
        foreach(array('SERVER_PORT', 'HTTPS', 'FCGI_ROLE', 'HTTP_HOST', 'SERVER_PROTOCOL') as $var)
            $strSERVER .= '&'.$var.'='.urlencode($_SERVER[$var]);

        if (!$this->arTestVars['last_value'])
        {
            $strRequest = "GET "."/bitrix/admin/site_checker.php?test_type=redirect_test&unique_id=".checker_get_unique_id().$strSERVER." HTTP/1.1\r\n";
            $strRequest.= "Host: ".$this->host."\r\n";
            $strRequest.= "\r\n";

            if (!$res = $this->ConnectToHost())
                return false;

            $strRes = GetHttpResponse($res, $strRequest, $strHeaders);

            if (preg_match('#Location: (.+)#', $strHeaders, $regs))
            {
                $url = trim($regs[1]);
                if (!$url)
                {
                    PrintHTTP($strRequest, $strHeaders, $strRes);
                    return false;
                }

                $this->arTestVars['last_value'] = $url;
                $this->test_percent = 50;

                return true;
            }

            PrintHTTP($strRequest, $strHeaders, $strRes);
            return false;
        }
        else
        {
            $url = $this->arTestVars['last_value'];
            if (!$url)
                return false;

            $ar = parse_url($url);

            $host = $ar['host'];
            $ssl = $ar['scheme'] == 'https' ? 'ssl://' : '';
            $port = intval($ar['port']) ? intval($ar['port']) : ($ssl ? 443 : 80);

            $strRequest = "GET "."/bitrix/admin/site_checker.php?test_type=redirect_test&unique_id=".checker_get_unique_id().$strSERVER."&done=Y HTTP/1.1\r\n";
            $strRequest.= "Host: ".$host."\r\n";
            $strRequest.= "\r\n";

            if ($res = $this->ConnectToHost($host, $port, $ssl))
                return IsHttpResponseSuccess($res, $strRequest);
            return false;
        }
    }

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение