Техника и технологии высоких напряжений

- электростатическое распыление, высоковольтные источники, дефектоскопия труб
Текущее время: 16 дек 2024, 02:56

Часовой пояс: UTC + 3 часа [ Летнее время ]


Некоторые практические аспекты оптимизации сайта



Автор
Aleksandr
Не в сети

Зарегистрирован: 07 авг 2010, 09:54
Сообщения: 2
Блог: Просмотр блога (3)

Новый блог Новый комментарий  [ 9 ответов ] 

Постоянная ссылкаДобавлено: 18 окт 2010, 01:28 
Запрет индексации https копий страниц сайта - очередной этап борьбы с борьбой поисковиков против дублей страниц. На этот раз Яндекс в один прекрасный апдейт поисковой базы каким то образом умудрился проиндексировать главную страницу по протоколу https.

Естественно, ему это не понравилось, да так, что в выдаче Яндекса по запросу site:gt-e.ru главная страница проиндексировалась целых 4 раза. Заодно он проиндексировал еще одну страницу три раза, но уже по протоколу http. Соответственно, провалились позиции по всем поисковым запросам.

Пришлось закрывать от индексации дубли страниц сайта по протоколу https.
Опять же немного подпортил включенный SSI при котором определить порт запроса пользователя можно определить только по содержанию переменной окружения HTTP_SSL.

Для проверки состояния переменных сервера при разных запросах необходимо создать файл с названием test.php, записать в него
Код:
<?php
phpinfo();
?>

Сохранить файл и записать в корневую папку сайта.
Затем посмотреть и сравнить содержание
http://www.имя_сайта.ru/test.php
и
https://www.имя_сайта.ru/test.php

Если HTTP_SSL при доступе по протоколу https принимает значение on то все нормально.
Для решения проблемы достаточно записать в файл .htaccess следующий текст

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#замена файла robots.txt при доступе по https
RewriteCond %{HTTP:SSL} =on 
RewriteRule ^robots.txt$ robots_https.txt
#редирект с учетом https
RewriteCond %{HTTP:SSL} !=on
RewriteCond %{HTTP_HOST} ^имя_сайта.ru
RewriteRule (.*) http://www.имя_сайта.ru/$1 [R=301,L]
RewriteCond %{HTTP:SSL} !=on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.имя_сайта.ru/ [R=301,L]
</IfModule>


Далее создаем файл
robots_https.txt
и записываем в него
Код:
User-agent: *
Disallow: /

Файл robots_https.txt записываете в корневой каталог сайта.
Таким образом страницы сайта будут запрещены к индексации поисковыми системами при обращении к ним по протоколу https.
При считывании файла robots.txt по протоколу https будет отдаваться содержимое файла
robots_https.txt.

Если необходима склейка (переадресация имя_сайта.ru => www.имя_сайта.ru) доменного имени без указания www и с указанием www в адресе домена, то необходима следующая запись

Код:
RewriteCond %{HTTP:SSL} !=on
RewriteCond %{HTTP_HOST} ^имя_сайта.ru
RewriteRule (.*) http://www.имя_сайта.ru/$1 [R=301,L]
RewriteCond %{HTTP:SSL} !=on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.имя_сайта.ru/ [R=301,L]

обеспечивает запрет редиректа страниц сайта с адресом домена без www на адрес домена с www при обращении по https.
имя_сайта необходимо заменить реальное доменное имя.


Последний раз редактировалось Aleksandr 18 окт 2010, 01:29, всего редактировалось 1 раз.


 Профиль  
Ответить с цитатой  


Комментарии
Показать сообщения за:  Поле сортировки  

Новый блог Новый комментарий
 [ 9 ответов ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Зарегистрированные пользователи: Yandex [Bot]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
HVP
Яндекс.Метрика