2011-09-01 68 views
1

我猜你都知道指令形式mod_so LoadModule。我想在的对面,通过.htaccess文件卸载特定目录的模块。 UnloadModule是否存在?LoadModule的对面Apache(.htaccess)指令

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

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

+0

看一看这个例子 - 它显示了如何将它关闭 - http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#recommended。关键字是设置'no-gzip'环境变量,它将停用特定请求的mod_deflate。 – LazyOne

+0

因此,简单的行** SetEnv no-gzip 1 **将禁用mod_deflate?我尝试过,但仍然以压缩图像结束。 我的主要问题呢? –

回答

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文件(只要的IT是足够大的,当然)。

现在,让我们添加html到排除的扩展名列表:

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

现在重新调用浏览器相同的HTML文件(请确保浏览器实际上载入新鲜(应该是200响应),而不是从高速缓存或通过304未修改的响应)。它现在发送完全不压缩的html文件。 Firebug确认:压缩时只有480字节,而未压缩的数据只有11.6 KB(html文件基本上是一段重复20次左右的文本,因此压缩效果非常好)。我确定你可以很容易地修改它以满足你的需求(在我的服务器上,压缩不是全局启用的 - 这是我在需要时使用的代码 - 所以我不能为你提供100%准确的代码,不幸)。例如:

SetEnvIfNoCase Request_URI .+$ no-gzip dont-vary 
+0

感谢您的解释性答案。 –

0

通过简单地在您的配置中根本没有LoadModule指令,您可以防止首先加载模块。

+0

这是服务器/托管相关。我想通过.htaccess文件禁用所有模块,而不管服务器的设置如何。假设我没有root权限,只有FTP到特定的文件夹。也许我在原来的问题中没有清楚说明。 –