Аватар пользователя Dima

А как вы боретесь с дублированием контента в Drupal?

Известно, что при создании синонима пути в Drupal исходный адрес все еще доступен для индексирования поисковиками. Это одна из причин дублирования контента в CMS Drupal.

Также известно что зеркала страниц рекомендуется склеивать 301 редиректом.

Потому для уменьшения дублирования контента в Drupal я решил использовать 301 редирект для перенаправления с адресов node/* на адрес адрес-синоним исходного пути.
В результате в перехватчике hook_init() написал несколько строк кода которые перенаправляют пользователей и поисковики по новому адресу-синониму с указанием последним что страница перемещене по новому адресу окончательно.
Пример кода приведен ниже.

  1. /**
  2.  * Implementation of hook_init().
  3.  */
  4. function mymodule_init() {
  5. // get query string.
  6. $query = substr(request_uri(), 1);
  7. // if request path linked to node, get alias if it set/
  8. if(strpos($query, "node/") !== FALSE){
  9. if($path = drupal_lookup_path('alias', $query, 'ru')) {
  10. drupal_goto($path, NULL, NULL, 301);
  11. }
  12. }
  13. }