Делаем ссылки sape устойчивыми к GET-параметрамНа большинстве сайтов, адреса типа http://example.com/page.html и http://example.com/page.html?abra=cadabra имеют эквивалентное содержимое. Если поисковик увидит оба этих URL, то склеит их и будет считать одним и тем же ресусом. Sape различает все URL с разными GET-параметрами, так как некоторые GET-параметры существенно меняют содержимое страницы. В результате, если на странице http://example.com/page.html будет размещена ссылка sape, то на странице http://example.com/page.html?abra=cadabra ее не будет. Такое поведение нежелательно, так как может помешать корректной склейке эквивалентных страниц и может использоваться для обнаружения "продажных ссылок" на странице.Наша задача в том, чтобы ссылка присутствовала как вкопанная на всех страницах, эквивалентных по содержимому исходной странице. Один из способов достичь этого — исключить все эквивалентные страницы. Для этого достаточно отдавать код 404, если страница содержит неопознанный GET-параметр. Такой подход обычно не практикуется, так как небольшая ошибка может привести к недоступности нужных динамических страниц. Кроме того, "паразитные" GET-параметры часто бывают полезны, например, они используются системой контекстной рекламы для отслеживания ее эффективности через сторонние системы статистики (так называемые метки openstat). Мы опишем другой подход: модифицируем код вызова sape так, чтобы одни и те же ссылки присутствовали на всех страницах, эквивалентных данной. При этом необходимо сохранить все GET-параметры, которые существенно меняют содержимое страницы. Для упрощения кода, будем считать, что полезные GET-параметры в URL (если их несколько) всегда следуют в одном и том же порядке. Решение приведем для php-кода sape. Sape позволяет при вызове указывать явно URL, для которого требуется получить код ссылки. Пусть код вызова sape выглядит так: require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); Нам необходимо, чтобы sape оперировал URL, очищенным от всех лишних
GET-параметров. Все разрешенные GET-параметры в порядке их следования,
перечисленны в массиве $FRIENDLY_GET_PARAMS. Сформируем очищенный URL и
передадим его sape с помощью опции 'request_uri'. Код вызова sape будет
выглядеть так:: Внимание: Код протестирован на сайтах с минимальным количеством полезных GET-параметров. Если у вас GET-параметры используются интенсивно и принимают з3амысловатые значения, просим внимательно протестировать корректность отображения ссылок на таких страницах. Логику потребуется усложнить, если URL может содержать несколько полезных GET-параметров и порядок их следования не фиксирован. В итоге, все эквивалентные страницы будут содержать одни и те же "продажные" ссылки, что сделает их технически неотличимыми от естественных ссылок. Тем не менее, это не решение всех проблем, так как поисковики обращают внимания и на другие факторы, такие как, частота изменения ссылок на странице и соответствие тематики размещенных ссылок тематике сайта. Источник: bratsk.ucoz.net |
КОНТАКТЫ
г. Екатеринбург info@vismech.ru |
текущее: НОВОСТИ 05.12.2013 - Уход за флэш-накопителем 05.12.2013 - Компьютер самопроизвольно выключается 05.12.2013 - Почему не запускается компьютер? 27.11.2013 - Canon Legria HF R406 - Описание видеокамеры 27.11.2013 - TravelMate P645 новый лэптоп бизнес-класса от Acer |