2011-09-01 139 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到特定的文件夾。也許我在原來的問題中沒有清楚說明。 –