Выбрать VPSДата-ЦентрыСообщество
Поддержка
Войти
RUS
₽RUB
8 (800) 775 97 42
Бесплатно, круглосуточно
 
Мои серверы
Домены
Баланс:
Заказать
Настройки
Партнеру
 
Личный кабинет
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Настройка VPS Сервера/Как переписать URL-адреса с помощью mod_rewrite для Apache в Ubuntu 20.04

Как переписать URL-адреса с помощью mod_rewrite для Apache в Ubuntu 20.04

31 просмотров 0 2021-02-15 2021-02-16

Основным функциональным модулем для Apache, который позволяет переписывать URL-запросы в удобные для кода строки, является mod_rewrite. Настройка модуля осуществляется набором правил, который описан либо в конфигурации вашего сервера, либо в файлах .htaccess. Далее о том, как переписать URL-адреса с помощью mod_rewrite для Apache в Ubuntu 20.04.

Основным файлом, на ряду с модулем mod_rewrite, который позволяет осуществлять перезаписи запросов, изменять доступ к страницам и многое другое, в соответствии с заданными правилами, является .htaccess.

Этот файл необходимо размещать в корневом каталоге сайта, чтобы он мог функционировать с заданными для него свойствами.

В этой статье, мы отразим необходимую информацию, в которой рассмотрим основные моменты работы модуля mod_rewrite и .htaccess.

Основные требования:

  • Настроенный VPS с Ubuntu Server 20.04
  • Установленный веб-сервер

Запуск модуля mod_rewrite.

Как правило, модуль mod_rewrite уже установлен в системе, и для дальнейшего его использования веб-сервером Apache, нам нужно только запустить его. Для включения модуля воспользуемся командой a2enmod:

$ sudo a2enmod rewrite

Если на данном этапе модуль был ранее запущен, система сообщит нам об этом. Чтобы веб-сервер Apache полноценно смог работать с модулем mod_rewrite, необходимо перезапустить его. Делается это следующей командой:

$ sudo systemctl restart apache2

Модуль включен. Далее нам необходимо создать файл .htaccess в корневом каталоге нашего сайта, в котором в последующем мы разместим необходимые нам правила.

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

Как говорилось выше, этот файл позволит нам создавать необходимые правила, связанные с работой на нашем будущем сайте.

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

$ sudo nano /etc/apache2/site-available/000-defaulte.conf

Дополним блок <VirtualHost *:80> следующими настройками:

<VirtualHost *:80>
<Directory /var/www/html
Option Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Сохраним наши настройки, выйдем из редактора и перезапустим сервер Apache:

$ sudo systemctl restart apache2

Теперь нужно создать файл .htaccess:

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

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

RewriteEngine on

Здесь необходимо сохранить и выйти из редактирования файла.

Настройка перезаписи URL-адресов

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

Для настройки доступа к ссылке http://your_web_server_ip/index необходимо создать страницу index.html в корневой директории веб-сервера:

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

Наполнить index.html файл следующим HTML-кодом:

<html>
<head>
<title>Your page</title>
</head>
<body><h1> *** Your page content *** </h1>
</body>
</html>

Наша страница будет доступна по следующей ссылке: http://your_web_server_ip/index.html

Web-страница - как переписать URL-адреса с помощью mod_rewrite для Apache в Ubuntu 20.04

Но если ввести ссылку ниже: http://your_web_server_ip/index мы получим ошибку 404.

Как видно из этого примера, в конце ссылки не используется .html, что и привело к появлению ошибки 404. Ошибка 404 или Not Found («не найдено»)— стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу. Т.е. запрашиваемая страница отсутствует по данному запросу.

Если мы хотим, чтобы пользователи могли получить доступ к странице, не указывая расширения .html, мы создадим правила перезаписи.

Все правила перезаписи RewriteRules имеют следующий формат:

RewriteRule pattern substitution [flags]

Размерем:

  • RewriteRule – опция перезаписи.
  • pattern – выражение, определяющее необходимую строку в URL.
  • substitution – путь к файлу.
  • flags – параметры, управляющие поведением правила.

Теперь отредактируем файл .htaccess:

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

Здесь у нас уже имеется одно правило. Наполним следующим правилом и затем сохраним наши изменения:

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

В нашем случае ^index$ — это шаблон, index.html – путь к файлу, а [NC] – флаг. Теперь, более подробно про правило, которое мы использовали, по частям:

  • ^ – запись, обозначающая начало шаблона URL (после your_web_server_ip/).
  • $ — конец шаблона.
  • Index – сам шаблон, именно то слово, которое необходимо найти в запросе.
  • index.html – страница сайта.
  • [NC] – флаг, отключающий чувствительность к регистру.

Откроем ссылку http://your_web_server_ip/index в нашем браузере и мы увидим наше правило в работе. Это правило позволят осуществлять доступ к нашей странице index.html по следующим URL-ссылкам:

  • http://your_web_server_ip/index; (без .html)
  • http://your_web_server_ip/Index; (правило не чувствительно к регистру);
  • http://your_web_server_ip/index.html; (ссылка будет работать).

URL-адреса, указанные ниже, работать не будут:

  • http://your_web_server_ip/index/ (в нашем правиле (символ $), после index ничего быть не может).
  • http://your_web_server_ip/about (так как about не совпадает со строкой index).

В данных примерах мы увидели, каким образом работает правило перезаписи ссылок и для чего необходим файл .htaccess, и узнали, как переписать URL-адреса при помощи mod_rewrite для Apache в Ubuntu 20.04.

Статья полезна?

Да  Нет
Похожие статьи
  • Как отключить конфигурацию усиленной безопасности и настроить Internet Explorer в Windows Server
  • Как изменить или добавить язык в Windows Server
  • Как обновить CentOS 8 до CentOS Stream
  • Как настроить Nginx в качестве веб-сервера и обратного прокси-сервера для Apache на одном сервере Ubuntu 20.04
  • Как централизовать логи с помощью Journald в Ubuntu 20.04
  • Первоначальная настройка VPS сервера с Ubuntu 20.04
Оставить комментарий Отменить ответ

Популярные статьи
  • RDP: Как подключиться к виртуальному серверу Windows?
  • Как настроить звук на сервере при RDP-подключении: для Mac и Windows
  • Как настроить VPN, используя OpenVPN и Streisand
  • Настройка локальной сети через ZeroTier
  • Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Турбо
VPS с 1C
Форекс VPS
Игровые серверы
VPS на Украине
Пинг до дата-центров
Услуги:
Антивирусная защита
Аренда лицензий
Страхование
Облачное хранилище
Страхование для юридических лиц
VPS серверы с Plesk Obsidian
Клиентам:
О компании
Дата-Центры
Новости
Публичная Оферта
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Партнерская программа
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2021 RuVDS. Все права защищены.