与LoadModule Apache(.htaccess)指令相反

时间:2011-09-01 19:32:10

标签: apache .htaccess module mod-deflate

我猜你们都知道 LoadModule 指令表单mod_so。我想通过.htaccess文件为特定目录执行相反,卸载模块。 UnloadModule 是否存在?

我希望通过*禁用除mod_rewrite *之外的所有模块来达到最高的脚本兼容性,因为不需要的模块以某种方式弄乱了我的脚本。是否有简单方法?

附带问题:如何仅禁用mod_deflate?这是最大的坏蛋。我想在我的脚本内部处理压缩。

2 个答案:

答案 0 :(得分:2)

1。我认为无法卸载已加载的模块。这就是我在#1上所能说的一切。

2. 我们将此代码放入.htaccess:

<IfModule deflate_module>
    # Insert filter
    SetOutputFilter DEFLATE
    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    <IfModule headers_module>
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
</IfModule>

这会压缩.html文件(当然,它足够大了。)

现在,我们将html添加到已排除的扩展程序列表中:

    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|html)$ no-gzip dont-vary

现在在浏览器中重新加载相同的html文件(确保浏览器实际上是新加载的(应该是200响应)而不是来自缓存或通过304 Not Modified响应)。它现在发送没有压缩的html文件。 Firebug证实:压缩后只有480个字节,11.6 KB的未压缩数据(html文件基本上是一段重复20次左右的文本,因此非常好的压缩)。

我确信你可以很容易地根据你的需要修改它(在我的服务器压缩没有全局启用 - 这是我在需要时使用的代码 - 所以我不能为你提供100%准确的代码,不幸)。例如:

SetEnvIfNoCase Request_URI .+$ no-gzip dont-vary

答案 1 :(得分:0)

您可以通过在配置中根本没有针对相关模块的LoadModule指令来阻止模块首先加载。