---
title: "Joomla .htaccess: правила для включения сжатия Brotli и правила кэширования  - WebTolk"
description: "В чате Joomla коллеги поделились полезными правилами для htaccess, которые позволяют включить серверное сжатие brotli для трафика, а так же настроить кэширование. Сохраняю к себе. "
url: "https://web-tolk.ru/blog/joomla-htaccess-pravila-dlya-vklyucheniya-szhatiya-brotli-i-pravila-keshirovaniya"
date: "2025-10-27T10:42:04+00:00"
language: "ru-RU"
---

# Joomla .htaccess: правила для включения сжатия Brotli и правила кэширования

 Автор: Сергей Толкачев Создано: 27 октября 2025 Обновлено: 27 октября 2025 Просмотров: 719    ![](https://web-tolk.ru/blog/images/blog/joomla-htaccess-pravila-dlya-vklyucheniya-szhatiya-brotli-i-pravila-keshirovaniya/htaccess-joomla-brotli-and-cache-rules.webp)

В [чате Joomla коллеги поделились](https://t.me/projoomla/83767) полезными правилами для `.htaccess`, которые позволяют включить серверное сжатие **brotli** для трафика, а так же настроить кэширование. Сохраняю к себе.

Правила следует вставить в самый конец `.htaccess`, после правил Joomla. В стандартном `.htaccess` Joomla вставлены правила, которые проверяют есть ли созданные вручную сжатые gzip файлы для js и css файлов.

- Секция GZIP & BROTLI с использованием **mod_rewrite** проверяет, существует ли уже сжатый .gz файл (например, **style.css.gz**) и поддерживает ли клиент сжатие `gzip`.
- Если условия выполнены, сервер отдает готовый `.gz` файл.
- **Важно:** Для этих `.gz` файлов устанавливаются переменные `E=no-gzip:1` и `E=no-brotli:1`. Это указывает другим модулям (включая **mod_deflate** и **mod_brotli**) **не сжимать** этот контент снова, предотвращая двойное сжатие и потенциальные ошибки (`ERR_CONTENT_DECODING_FAILED`).

## Как это работает вместе со сжатием Brotli?

- Сначала Apache обрабатывает правила **mod_rewrite** из секции GZIP & BROTLI. Если запрошенный файл (.css или .js) имеет соответствующий .gz аналог, и клиент поддерживает gzip, Apache отдает этот готовый .gz файл и устанавливает флаги no-gzip и no-brotli.
- Если готовый .gz файл не найден или клиент не поддерживает gzip, Apache переходит к следующему этапу.
- Затем Apache проверяет, доступны ли **mod_brotli** или **mod_deflate**. В зависимости от доступности модуля и заголовков **Accept-Encoding** клиента (br, gzip), один из них выполнит сжатие файла **на лету** перед отправкой.

## Включить сжатие Brotli на сервере для Joomla

```
<ifModule mod_brotli.c>
AddType image/svg+xml .svg
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css application/xml text/javascript application/x-javascript application/javascript application/json application/font-woff2 application/font-woff application/x-font-ttf application/vnd.ms-fontobject image/x-icon image/svg+xml
</ifModule>
<ifModule mod_deflate.c>
AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/xml text/javascript application/x-javascript application/javascript application/json application/font-woff2  application/font-woff application/x-font-ttf application/vnd.ms-fontobject image/x-icon image/svg+xml
</ifModule>
```

## Настройки кэширования для .htaccess Joomla

```
AddType application/vnd.ms-fontobject    .eot
AddType application/x-font-opentype      .otf
AddType image/svg+xml                    .svg
AddType application/x-font-ttf           .ttf
AddType application/font-woff            .woff
AddType application/font-woff2           .woff2

<IfModule mod_headers.c>
  <FilesMatch ".(eot|otf|svg|ttf|woff2?)$">
    Header set Access-Control-Allow-Origin "*"
  </FilesMatch>
</IfModule>

AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript

  ExpiresActive on
  ExpiresDefault                          "access plus 1 month"

  ExpiresByType text/cache-manifest       "access plus 0 seconds"

  <FilesMatch \.(html|xhtml|xml|shtml|phtml|php|txt)$>
    ExpiresDefault "access plus 0 seconds"
  </FilesMatch>
  ExpiresByType text/html                 "access plus 0 seconds"

  ExpiresByType text/xml                  "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType application/json          "access plus 0 seconds"

  ExpiresByType application/rss+xml       "access plus 1 hour"
  ExpiresByType application/atom+xml      "access plus 1 hour"

  <FilesMatch \.(ico)$>
    ExpiresDefault "access plus 1 week"
  </FilesMatch>
  ExpiresByType image/x-icon              "access plus 1 week"

  <FilesMatch \.(gif|png|jpg|jpeg|webp|ogg|mp4|mkv|flv|swf|wmv|asf|asx|wma|wax|wmx|wm)$>
    ExpiresDefault "access plus 1 year"
  </FilesMatch>
  ExpiresByType image/gif                 "access plus 365 days"
  ExpiresByType image/png                 "access plus 365 days"
  ExpiresByType image/jpeg                "access plus 365 days"
  ExpiresByType video/ogg                 "access plus 365 days"
  ExpiresByType audio/ogg                 "access plus 365 days"
  ExpiresByType video/mp4                 "access plus 2 month"
  ExpiresByType video/webm                "access plus 2 month"

  ExpiresByType text/x-component          "access plus 2 month"

  <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
    ExpiresDefault "access plus 1 year"
  </FilesMatch>
  ExpiresByType application/x-font-ttf    "access plus 6 month"
  ExpiresByType font/opentype             "access plus 6 month"
  ExpiresByType application/x-font-woff   "access plus 6 month"
  ExpiresByType application/x-font-woff2  "access plus 6 month"
  ExpiresByType image/svg+xml             "access plus 6 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 2 month"

  <FilesMatch \.(css|js)$>
    ExpiresDefault "access plus 1 year"
  </FilesMatch>
  ExpiresByType text/css                  "access plus 365 days"
  ExpiresByType application/javascript    "access plus 365 days"

  <FilesMatch \.(swf|pdf|doc|rtf|xls|ppt)$>
    ExpiresDefault "access plus 1 year"
  </FilesMatch>
  ExpiresByType application/x-shockwave-flash "access plus 1 year"
  ExpiresByType application/pdf               "access plus 1 year"
  ExpiresByType application/msword            "access plus 1 year"
  ExpiresByType application/rtf               "access plus 1 year"
  ExpiresByType application/vnd.ms-excel      "access plus 1 year"
  ExpiresByType application/vnd.ms-powerpoint "access plus 1 year"
```

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Joomla .htaccess: правила для включения сжатия Brotli и правила кэширования "
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/joomla-htaccess-pravila-dlya-vklyucheniya-szhatiya-brotli-i-pravila-keshirovaniya",
            "name": "Joomla .htaccess: правила для включения сжатия Brotli и правила кэширования  - WebTolk",
            "description": "В чате Joomla коллеги поделились полезными правилами для htaccess, которые позволяют включить серверное сжатие brotli для трафика, а так же настроить кэширование. Сохраняю к себе. ",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "image": "https://web-tolk.ru/images/blog/joomla-htaccess-pravila-dlya-vklyucheniya-szhatiya-brotli-i-pravila-keshirovaniya/htaccess-joomla-brotli-and-cache-rules.webp",
            "headline": "Joomla .htaccess: правила для включения сжатия Brotli и правила кэширования ",
            "description": "В чате Joomla коллеги поделились полезными правилами для htaccess, которые позволяют включить серверное сжатие brotli для трафика, а так же настроить кэширование. Сохраняю к себе. ",
            "author": {
                "@type": "person",
                "name": "Сергей Толкачев",
                "url": "https://web-tolk.ru",
                "email": "info@web-tolk.ru",
                "address": {
                    "@type": "PostalAddress",
                    "addressLocality": "Саратов"
                }
            },
            "datePublished": "2025-10-27T00:00:00+00:00",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/159",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
