Закрыть протокол https:// от индексации

#
Закрыть протокол https:// от индексации
В принципе суть вопроса в теме.
Как закрыть протокол https:// от индексации поисковыми системами в HostCMS/

С помощью .htaccess правилами типа
RewriteCond %{HTTPS} on
RewriteRule ^robots\.txt$ robots-https.txt
не получается, т.к.
1. файл robots.txt генерируется через систему для каждого сайта отдельно.
2. условие RewriteCond %{HTTPS} - просто напросто игнорируется.
#
Re: Закрыть протокол https:// от индексации
1. В структуре для нужных узлов выставить доступ только по https.
2. В макете, в области генерации мета-тегов, проверять значение доступа для текущего узла структуры, и если доступ только по https то выдавать мета-тег robots со значением noindex,nofollow
Заказов не беру. Консультирую редко.
#
Re: Закрыть протокол https:// от индексации
В том то и дело что к узлам для которых не выставлен доступ только по https (т.е. http по умолчанию) можно обратиться как через http так и по https.
Установка доступа HTTPS указывает обязательный доступ только по нему, т.е. запрет доступа по HTTP. Никто не запрещает доступ через HTTPS при доступе HTTP
#
Re: Закрыть протокол https:// от индексации
Ну тогда анализруйте не свойства текущего узла структуры, а протокол указанный в HTTP запросе.
См описание $_SERVER['HTTPS'] здесь http://www.php.net/reserved.variables.server.php
Заказов не беру. Консультирую редко.
#
Re: Re: Закрыть протокол https:// от индексации
Да, это я уже пытался сделать. Но это применимо для web-сервера apache. У меня же посетитель подключается не напрямую к веб-серверу apache (который обрабатывает .php скрипты), посетитель подключается к веб-серверу nginx, который, при необходимости, передаёт запрос веб-серверу apache. Таким образом в глобальном массиве $_SERVER нет элемента HTTPS и элемент SERVER_PORT равен 80. На работу по протоколу https указывает элемент с именем HTTP_X_SCHEME.

В принципе суть от этого не меняется, - можно анализировать $_SERVER["HTTP_X_SCHEME"]
К примеру:
if (isset ($_SERVER["HTTP_X_SCHEME"]) && $_SERVER['HTTP_X_SCHEME'] == 'https')
{
$_SERVER["HTTPS"] = 'on';
}


Но, вот где ???
Будет ли правильным установить подобный код в main_classses.php или где-то еще???
#
Re: Закрыть протокол https:// от индексации
pitbull писал(а):
Но, вот где? ??

На этот вопрос я ответил выше.
Kotoff писал(а):
2. В макете, в области генерации мета-тегов,

Поскольку вы будете ограничивать доступ с помощью мета-тега, то нет смысла анализировать $_SERVER["HTTP_X_SCHEME"] где-либо раньше чем то место, в котором вы будете выводить этот мета-тег в макет.
Заказов не беру. Консультирую редко.
#
Re: Закрыть протокол https:// от индексации
Сделал по-другому

что бы не лепить во все макеты, всех сайтов, лишний код и если нужно закрыть индексацию всех сайтов в системе от индексации по протоколу https:// - в файл main_classses.php прописываем следующий код
if (isset ($_SERVER['HTTP_X_SCHEME']) && $_SERVER['HTTP_X_SCHEME'] == 'https')
{
   if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] == '/robots.txt'){
      header('Location: http://site.ru/robots-https.txt');
      exit;
   }
}


В файле robots-https.txt прописываем
User-agent: *
Disallow: /


теперь при обращении к файлу robots.txt через протокол https:// будет считываться файл robots-https.txt

Это актуально для серверов работающих на хостинге sprinthost.ru
Авторизация