Продажные ссылки sape

Если на каком-либо сайте есть страница типа http://example.com/page.html, то, скорее всего, содержимое страницы http://example.com/page.html?var1=tratata бедет таким же или отличаться незначительно. Разумеется, поисковые системы успешно проанализируют содержимое страницы по таким адресам и склеют их в один, справедливо считая, что это одна и та же страница.

Но в то же время те, кто работает с Sape, занют, что такая разница в адресах не будет учтена системой, поэтому она расценит эти адреса как разные страницы, поэтому, размещая продажную ссылку на одной из этих страниц, на другой станице продажной ссылки не будет, хотя речь идет об одной странице.

Это иногда используется для недобросовестной торговли продажными ссылками, но речь не об этом, а о том, как сделать так, чтобы sape расценила данные страницы корректным образом, т.е. установила ссылку вне зависимости от того, какие параметры переданы в get-запросе.

Если этого не сделать, то проверяющий бот, добавив какой-либо несуществующий параметр в запрос сможет вычислить продажные ссылки, размещенные при системой sape или другого подобного сервиса. Обычно, чтобы этого избежать просто устанавливают код 404 (not found), если в запросе есть неизвестные параметры.

Однако это не самый лучший способ, так как забыть про какой-либо get параметр вполне легко, особенно, если речь идет о CMS. Кроме того есть случаи, когда дополнительные get параметры добавляются сторонними сайтами, например сервисами ведения статистики.

Предлагаемый в этой статье способ заключается в том, чтобы передать sape ссылку, содержащую только жизненно важные get-параметры, отбросив ненужные, но, при этом, оставив их доступными самой странице.

Делается это следующим образом. На страницах сайта размещается следующий код вызова вместо стандартного:

  1. require_once($_SERVER[‘DOCUMENT_ROOT’].‘/’._SAPE_USER.‘/sape.php’);
  2. $o[‘charset’]=‘UTF-8′;
  3. $GetParams=array(‘id’,‘act’,‘page’);
  4. $o[‘request_uri’] = reset(explode(‘?’,$_SERVER[‘REQUEST_URI’]));
  5. $params = array();
  6. foreach($GetParams as $param) {
  7.   if(isset($_GET[$param]))
  8.     $params[]=urlencode($param).‘=’.urlencode($_GET[$param]);
  9. }
  10. if($params)
  11.   $o[‘request_uri’].=«?».implode(‘&’,$params);
  12. $sape=new SAPE_client($o);

Как можно видеть из приведенного кода в строке 3 задается массив, который содержит GET-параметры, которые необходимо передать Sape. Так, например, от параметров id, act и page обычно существенно зависит содержимое страницы, поэтому эти параметры передаются sape. Все остальные параметры (например ид пользователя, ид стиля отображения, статические данные, данные о предыдущей песещенной странице и прочие) отбрасываются.

Единственное, что необходимо сделать — это учесть все get-параметры, от которых зависит контент страницы.

Таким образом ссылки на странице станут похожими на “натуральные” и обнаружить продажные ссылки станет намного сложнее.