Назад | Перейти на главную страницу

Apache deflate в .htaccess не работает

У меня есть виртуальный хост, и я включил AllowOverride All. Я знаю, что это работает, поскольку правила перезаписи в /var/www/site/web/.htaccess выполняются (это приложение Symfony). Однако когда у меня есть DEFLATE правило там не работает. Например просто:

AddOutputFilterByType DEFLATE application/json

Однако, если я помещу это в конфигурацию своего виртуального хоста, он работает. Это выглядит так:

/etc/apache2/sites-enabled/site.dev.conf

<VirtualHost *:80>
    ServerName site.dev

    DocumentRoot /var/www/site/web

    <Directory /var/www/site/web>
        AllowOverride All
        Require all granted
    </Directory>

    # Setup passthrough to phm-fpm and auth header fix
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/site/web/$1
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

    ErrorLog /var/log/apache2/site_error.log
    CustomLog /var/log/apache2/site_access.log combined
</VirtualHost>

Любые предложения относительно того, почему это не работает? Я знаю, что лучше всего применять такие правила на виртуальном хосте или, что еще лучше, в основной конфигурации apache. Но мне просто любопытно, почему он не работает, когда помещается в .htaccess

Это работает под управлением Apache 2.4

Вы выполняете проксирование, поэтому каталог файловой системы не используется, поэтому вы не можете ничего поместить в htaccess и использовать его.

Зачем вам нужно настраивать DEFLATE в htaccess, если вы можете редактировать настоящую конфигурацию?

Если вы настаиваете на использовании htaccess, вы можете использовать метод SetHandler для настройки mod_proxy_fcgi.