Настройка чистых ссылок (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!
Добавить комментарий