Drupal 7 Чистые ссылки + Pathauto + Token + Transliteration + Globalredirect

   И так,  статью мы создали. И в поле ссылок видим что то вроде этого: //mysite.ru/index.php?q=node/1  и это не есть хорошо. Ссылки сайта должны быть "чистыми". Чистыми ссылками (в английском написании "clean URLs") называют URL вида: //mysite.ru/node/1 т.е. в теле ссылки нет никаких знаков "?" или "&". Drupal 7 позволяет нам использовать чистые ссылки.  Собственно сам Друпал никакого отношения к чистым ссылкам не имеет, все заботы на себя принимает сервер. Если вы настраивали сервер по моим статьям, это описано здесь, то чистые ссылки должны работать. А в Drupal7 настройки "Чистых ссылок" находятся в  файле .htaccess (находится в корне вашего сайта), которые Drupal делает автоматически. Но если вы не настравивали по моему сервер, а ставили Drupal7 на хостера, то и разбираться нужно с самим хостером. И если "читые ссылки" работают, то в Drupal7 нужно просто включить. Это можно сделать на странице Конфигурация » Чистые ссылки. Ставим галочку и если все в порядке, то "чистые ссылки" заработают, если нет нужно разбираться с хостом, настройками сервера.

   Мы включили "чистые ссылки". С включенной функцией чистых ссылок мы имеем url вида //mysite.ru/node/1. В набор стандартных модулей Drupal 7 входит модуль Path, позволяющий создавать синонимы для любого адреса на сайте, то есть создав синоним about для адреса node/1, страница будет доступна по адресам mysite.ru/node/1 и mysite.ru/about. "Синонимизированные" ссылки удобны, приятны на вид и любимы поисковиками, но не вбивать же вручную ссылки для каждой из страниц? Для автоматизации процесса создания синонимов предназначен специальный модуль - Pathauto. Для установки модуля Pathauto требуется наличия модуля Token. Токены - это маркеры, которые указывают на то или иное значение. Например токен [node:title] в Drupal7 указывает на заголовок материала. Токены очень полезны и еще не раз нам пригодятся.

Установим оба модуля Pathauto и Token. Как устанавливать модули я описывал здесь. Установив модули Token и Pathauto мы имеем возможность автоматизировать создание синонимов для наших url-ов. В меню Конфигурация » Синонимы URL   в закладке "Шаблоны" мы можем настроить какие синонимы будут создаваться для наших адресов и редактировать уже созданные. У меня в "Шаблон пути по умолчанию" стоит такая запись "/[node:title]", т.е. у меня все адреса будут иметь вид

http://mysite.com/названиестатьиилистраницы. Но т.к. названия статей у меня на русском, то и выводится они будут на нем же. А это не есть хорошо. Нужно транслитерирровать название. Для этого служит еще один модуль - Transliteration. Задача этого модуля - транслитерировать строки на кириллице в ASCII-96.

   Установим этот модуль. После установки и включения его, откроем нашу страницу и вот мы видим, что русские слова транслитерировались. В итоге мы получили красивые, приятные для людей и поисковиков ссылки.

   Но теперь на каждую страницу нашего сайта ведет несколько адресов - стандартный адрес Drupal и синоним. И это тоже не есть хорошо. Это может вызвать проблемы с поисковыми системами и некоторыми онлайн виджетами. Для склейки адресов используем модуль Global Redirect, этот модуль выполняет редирект 301 с оригинальных адресов на синонимы. После установки заходим в настройки модуля (или Конфигурация » Глобальная переадресация")  и отмечаем пункты "Удаление слеша" и "С не чистых ссылок на чистые".

   И даже после всего что мы сделали наши страницы имеют по два адреса - один из них имеет префикс www, а другой без него. Для того, чтобы оставить сайту один url необходимо в файле .htaccess, в корневом каталоге сайта, прописать следующее (или раскоментировать, если есть такие строчки):

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

   Эта запись означает, что на все адреса с префиксом www устанавливается редирект 301 на адрес без префикса. Редирект 301 означает постоянное перемещение страницы.

   К выбору того, какой адрес оставить - с www или без, нужно подходить ответственно. Точнее говоря, если ваш домен только что куплен и еще не индексирован поисковиками, то можно выбирать тот, который больше нравится, а вот если ваш сайт уже есть в индексе, то дело обстоит немного сложней. Загвоздка в том, что сайты с www и без считаются поисковиками совершенно разными, один из них  "назначается" главным, а второй - его зеркалом, при том нет никаких гарантий что разные поисковики сделают одинаковый выбор. И начнется чехарда.

   Для того чтобы выбрать главное зеркало уже проиндексированного сайта нам надо узнать мнение гапример Яндекса по этому вопросу, для этого достаточно посмотреть в каком виде ссылки на ваш сайт выдаются в его поиске. Если в поиске Яндекса ваш сайт имеет адрес без префикса - то это главное зеркало сайта и наоборот. В случае, что вас устраивает такой url, можно спокойно прописывать требуемый редирект в файле .htaccess. Если же нет, то для того чтобы указать Яндексу нужное главное зеркало, нужно прописать в файле robots.txt (находится в корне вашего сайта), в корне сайта, следующее:

User-agent: Yandex
Host: site.ru

   Вместо mysite.ru нужно указать тот адрес, который вы хотите сделать главным. После этого остается только ждать пока специальный робот Яндекса зайдет к вам и поменяет главный адрес сайта, а это может занять достаточно длительное время. После того как главный сайт изменен на нужный, можно устанавливать редирект. Установка редиректа с "главного" адреса на зеркало грозит выпадением страниц из индекса.

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

   Ну вот теперь смело можно сказать: ВСЁ!. В итоге мы имеем дружелюбные адреса страниц, однозначный доступ к каждой странице сайта и защищены от нежелательного дублирования контента. Не знаю доходчиво ли я изложил материал, если что не так  или не поняли пишите в коментах, попробуем разобраться. Но поверьте - это все нужно проделать иначе ваш сайт уже на старте будет неправильно сконфигурен и не видать вам первых позиций в поисковиках smiley

Категории:

Рейтинг: 
Средняя: 4.3 (22 оценок)

Комментарии

нужно ли использовать Global Redirect, если сайт разворачивался с поддержкой чистых ссылок?

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

http://travelca.ru

Я новичок в друпал. Изучаю друпал 7. Благодаря вашей статье многое поняла в друпал. Спасибо.

csdeagle.ru

Благодарствую за полезный материал

abode-web.ru

Насколько я знаю, в Друпал работает атрибут каноникал, то есть страницы с не чистыми ссылками считаются неканотическими, и в коде есть указание поисковикам, какой именно адрес для этой страницы считать каноническим и индексировать. Вот этот фактор может быть делает необязательном использование модуля Global Redirect?

http://lada-priora2.ru

Спасибо за хорошию статью и главное полезную..

kovivl.ru

Отличная статья! Давно мучился с этими урлами, а тут оказывается все просто)) Порадовало

prudy.com,ua

Автору огромное спасибо!!! Написано все четко, доходчиво, с необходимыми ссылками. 

Добавить комментарий

Filtered HTML

Plain text