Настройка чистых ссылок (clean URL) в drupal 7

Чистые ссылки позволяют вместо адреса вида http://mysite.ru/?q=node/2 получить адрес вида http://mysite/page2. Думаю, нам нет необходимости останавливаться на этом и объяснять за чем оно нужно, важно то, что мы должны найти простой путь для активации этой возможности.

Итак, приступим. Мой тестовый стенд включает в себя, как обычно ОС Debian GNU/Linux (на момент написания статьи её версия равнялась 7-ми) и веб-сервер Apache версии 2.2.22. Предположим, что Drupal уже установлен.

Первое и самое важное условие - для работы чистых ссылок у вашего сайта должно быть доменное имя. Если это не так, и Drupal вы устанавливали просто для тестирования, вам будет необходимо "сэмулировать" DNS окружение. Для этого на сервере занесите с помощью любого текстового редактора (например nano) в файл /etc/hosts соответствующую строчку:

   127.0.0.1      mysite.mydomain

На клиенте нужно сделать то же самое. Если вы используете Windows, то файл hosts там храниться в каталоге C:\windows\system32\drivers\etc

Возвращаемся к серверу. Для активации функции переадресации (а чистые ссылки в Drupal есть не что иное как переадресация) над понадобится модуль mod_rewrite для apache. Проверим, подключен ли модуль:

   apache2 -M

Если вывод будет содержать нечто похожее на "rewrite_module", значит модуль установлен и загружен. Если нет, то его необходимо загрузить. Делается это при помощи утилиты a2enmod

   a2enmod

После вызова команды появится запрос на ввод имени загружаемого модуля. Введите "rewrite". Автоматически в каталоге /etc/apache2/mods-enable будет создана ссылка на файл конфигурации, который в свою очередь ссылается уже на реальный модуль.

Снова проверьте загружен ли модуль. Скорее всего это так.

Теперь самое время обратиться к конфигурационному файлу, созданному самим Drupal в корневой папке сайта. Вернее обращаться к нему даже не нужно, так как там все преднастроено из коробки. Другое дело, настроен ли сервер на его использование, или данный файл просто игнорируется. Называется такой файл .htaccess. Включается он с помощью директивы AllowOverride в глобальном конфигурационом файле apache или конфигурационном файле виртуального узла (если вы используете виртуальный хостинг). По умолчанию в Debian 7 для Apache используется виртуальный хостинг, соответственно ищем наш конфигурационый файл в /etc/apache2/sites-enable. Добавим в него с помощью команды

   nano myconfigfile

следующую строку в любую позицию между тегами, описывающими виртуальный хост:

   <VirtualHost>
   .........

   AllowOverride All

   ..........
   </VirtualHost>

и перечитаем конфигурацию веб-сервером:

   /etc/init.d/apache2 reload

Теперь вы можете активировать чистые ссылки в настройках вашего drupal!

Темы:

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