Главная

Как включить mod_rewrite на Apache для VPS под Ubuntu 18.04

Содержание
mod_rewrite на Apache под Ubuntu

mod_rewrite – мощный инструмент Apache, который обеспечивает возможность работать с URL. Он позволяет переопределять адреса, чтобы облегчить работу в системах управления контентом, например WordPress.

Mod_rewrite популярен для генерации человекопонятных адресов (ЧПУ), что делает URL более дружелюбными.

В этом гайде мы опишем действия, с помощью которых включается mod_rewrite на веб-сервере под управлением Ubuntu 18.04.

Требования:

  • Ubuntu 18.04 VPS (или выделенный сервер)
  • Стандартный пользователь с возможностью выполнения sudo-команд
  • Веб-сервер Apache

Включение mod_rewrite

Для включения любого модуля Apache используется команда a2enmod. Выполним ее на сервере под Ubuntu 18.04:

$ sudo a2enmod rewrite

Если модуль уже подключен, появится сообщение с предупреждением.

Для применения изменений в конфигурации требуется перезапуск Apache. Для этого наберем команду:

$ sudo systemctl restart apache2

Теперь сервер готов к изменению URL.

Включение возможности работы с .htaccess

Вы можете настроить правила подмены URL непосредственно в конфигурационном файле Apache. Но удобнее сохранять правила в файле .htaccess для каждого сайта отдельно. Большинство CMS используют собственный .htaccess, который создается вместе с установкой приложения.

По умолчанию, Apache не позволяет использовать .htaccess. Отредактируем конфигурацию используемого виртуального хоста следующим образом:

<Directory /var/www/html>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Require all granted
</Directory>

Итак, отредактируем созданный по умолчанию файл с помощью команды nano:

$ sudo nano /etc/apache2/sites-available/000-default.conf

При этом скопированный текст помещается в конец файла перед закрывающим тегом </VirtualHost>. Не забываем сохранять файл, нажав CTRL + X, затем Y и Enter.

После этого перезапустим Apache для применения изменений:

$ sudo systemctl restart apache2

Синтаксис mod_rewrite

mod_rewrite содержит следующие части:

RewriteRule pattern substitution [flags]

RewriteRule – оператор команды

pattern – это образец (регулярка), который соответствует тому, что пользователь набирает в браузере.

Substitution – фактический адрес, на который должен быть перенаправлен пользователь.

flags – дополнительные параметры, которые определяют работу правила.

Создание файла .htaccess

Теперь создадим тестовый файл .htaccess в корневом каталоге сайта, чтобы проверить mod_rewrite. Для этого наберем команду:

$ sudo nano /var/www/html/.htaccess

Все правила должны идти за командой «RewriteEngine on». Поэтому наберем ее в первой строке нашего файла:

RewriteEngine on

Затем определим правило, которое перенаправит пользователя к странице contact.html, если он набирет адрес http://xxx.xxx.xxx.xxx/contact (где "xxx.xxx.xxx.xxx" — ip-адрес нашего сервера)

Такое правило выглядит следующим образом:

RewriteRule ^contact$ contact.html [NC]

В этом примере contact – паттерн, по которому пользователь должен быть перенаправлен на фактический адрес страницы contact.html. [NC] – параметр, который говорит серверу применять правило без учета регистра. "^" указывает на то, что отрабатываем соответствия любого текста после IP-адреса сервера или доменного имени, а знак "$" указывает на конец URL.

Таким образом, наш файл .htaccess должен принять следующий вид:

RewriteEngine on
RewriteRule ^contact$ contact.html [NC]

Сохраним файл, нажимая CTRL + X, Y, и Enter.

Затем создадим страницу contact.html. Для этого воспользуемся командой:

$ sudo nano /var/www/html/contact.html

Далее отредактируем текст HTML как указано в примере:

<html>
  <head>
    <title>Contact our website</title>
  </head>
  <body>
    <h1>This is a contact us page</h1>
  </body>
</html>

Сохраним файл, нажимая CTRL + X, Y и Enter.

Теперь, если набрать в адресной строке браузере http://xxx.xxx.xxx.xxx/contact, веб-сервер должен отправить нас на страницу contact.html, которую мы только что создали.

Заключение

Юзерфрендли-URL очень важны не только для людей, но и для поисковых систем. Использование правил с ключевыми словами в URL делают сайт более SEO-оптимизированным. Для каждого виртуального сервера можно указать десятки правил для подмены адресов. В этом руководстве были описаны простые действия для того, чтобы включить mod_rewrite на Apache и убедиться, что модуль работает правильно.

Оценить эту страницу
0
Средняя: 5 (1 оценка)

Еще полезные статьи

Опрос: На каком типе хостинга вы размещаете сайты?