.htaccess 中的 Apache deflate 不起作用

.htaccess 中的 Apache deflate 不起作用

我有一个虚拟主机并启用了。我知道这有效,因为正在执行AllowOverride All中的重写规则(这是一个 Symfony 应用程序)。但是当我在其中有规则时它不起作用。例如:/var/www/site/web/.htaccessDEFLATE

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

答案1

您正在使用代理,因此不涉及文件系统目录,因此您无法将任何内容放入 htaccess 中并实际使用它。

如果您可以编辑实际配置,为什么还要费心在 htaccess 中设置 DEFLATE 呢?

如果你坚持使用htaccess,那么可以使用mod_proxy_fcgi的SetHandler方法配置。

相关内容