Как настроить mod_rewrite на OpenServer, работающем на Ubuntu?

Как запустить Mod rewrite на Ubuntu?
  • 10 февраля 2024 г. 8:48
Ответы на вопрос 2
Mod_rewrite является модулем Apache, который позволяет переписывать URL-адреса с помощью правил, заданных в файле `.htaccess` или в конфигурационных файлах самого сервера. Чтобы настроить и включить mod_rewrite на сервере Apache, работающем на Ubuntu, выполните следующие шаги:

1. Убедитесь, что у вас установлен Apache2:
   ```
   sudo apt update
   sudo apt install apache2
   ```

2. Включите модуль mod_rewrite:
   ```
   sudo a2enmod rewrite
   ```

3. Перезапустите Apache, чтобы применить изменения:
   ```
   sudo systemctl restart apache2
   ```

4. Теперь вам необходимо настроить ваш виртуальный хост Apache, чтобы разрешить перезапись URL. Откройте файл конфигурации вашего сайта, который может находиться в директории `/etc/apache2/sites-available/`. Пример файла конфигурации может выглядеть так:

   ```
   sudo nano /etc/apache2/sites-available/your-site.conf
   ```

   Внутри блока <Directory> вашего сайта, установите значение `AllowOverride All`, чтобы включить использование файлов `.htaccess` для перезаписи URL. Пример:

   ```
   <Directory /var/www/your-site>
       Options Indexes FollowSymLinks
       AllowOverride All
       Require all granted
   </Directory>
   ```

5. Сохраните файл и закройте редактор.

6. Проверьте конфигурацию Apache на наличие ошибок:
   ```
   sudo apache2ctl configtest
   ```

   Если вы видите сообщение "Syntax OK", это означает, что конфигурация успешно проверена.

7. Перезапустите Apache, чтобы применить изменения конфигурации:
   ```
   sudo systemctl restart apache2
   ```

8. Создайте файл `.htaccess` в директории вашего сайта с необходимыми правилами перезаписи. Например:
   ```
   sudo nano /var/www/your-site/.htaccess
   ```

   И добавьте правила, например:
   ```
   RewriteEngine On
   RewriteRule ^example\.html$ example.php [L]
   ```

   Это простое правило перезаписывает URL так, что запрос к `example.html` фактически обрабатывается как запрос к `example.php`.

Обратите внимание, что если у вас OpenServer работает на Ubuntu, вы должны убедиться, что у вас установлен и настроен Apache внутри вашего OpenServer. Процесс включения mod_rewrite может отличаться, если у вас используется другой сервер, не Apache. Настройки, указанные выше, являются для стандартной установки Apache на Ubuntu.
Вообщем разобрался=))) Как я и думал просто нехватало модуля 

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:
Мне нужен был headers
sudo a2enmod expires

sudo a2enmod headers

sudo a2enmod rewrite

sudo a2enmod ssl
Похожие вопросы