3

Liquid Web VPSアカウントを持っていますが、mod_deflateがインストールされ、実行中/アクティブであることを確認しました。

以前はPHPを介してcssファイルとjsファイル、およびPHPファイル自体をgzipで圧縮していました...しかし、現在mod_deflateを介してこれを実行しようとしています。これは、PHPファイルを除くすべてのファイルで正常に機能するようです。(Txtファイルは正常に機能します。css、js、静的HTMLファイル、PHPファイルを介して生成されるものは何もありません。)これを修正するにはどうすればよいですか?

(cPanelの[ウェブサイトを最適化]の下にある[すべてのコンテンツを圧縮]オプションを使用しました。これにより、ホームディレクトリ(public_htmlではなく、1レベル上)に「画像以外のすべてを圧縮」とまったく同じテキストで.htaccessファイルが作成されます。 " http://httpd.apache.org/docs/2.0/mod/mod_deflate.htmlの例)

.htaccessファイル:

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    <IfModule mod_setenvif.c>
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4 gzip-only-text/html

        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip

        # MSIE masquerades as Netscape, but it is fine
        # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

        # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
        # the above regex won't work. You can use the following
        # workaround to get the desired effect:
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

        # Don't compress images
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    </IfModule>

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

6 に答える 6

5

この質問を投稿してからしばらく経ちました-PHP.iniを介してzlib圧縮を有効にすることになったので、zlibはPHP出力を圧縮し、mod_deflateは他のすべてを圧縮します。

それが機能しなかった理由(mod_deflateがPHP出力を圧縮していなかった)は、ApacheDSOではなくCGIとして実行されているPHPに関係していると思います...

于 2010-05-25T02:10:05.480 に答える
2

PHPファイルは通常、text/htmlコンテンツを提供します(ただし、画像やほとんどすべてのものを生成することもできます)。PHPファイルがクライアントに送信されることはありません。コンテンツ(text/htmlまたは画像)を生成するために処理されます。このコンテンツをgzipで圧縮しようとしています。

于 2010-05-14T16:30:50.117 に答える
0

zlib.output_compression = Onphp.ini構成ファイルに追加できます。これにより、mod_deflateに関係なく出力が圧縮されます。

于 2010-05-14T16:32:25.063 に答える
0

その構成全体は​​なり時代遅れです。今すぐ削除することができ、削除する必要があります。Netscape4は長い間使用されておらず、設定するとVary: User-Agentキャッシュが不必要に妨げられます。

必要な唯一のmod_deflate構成は、圧縮可能メディアタイプに対してdeflateをオンにするための1行です。これはAddOutputFilter、拡張子で圧縮可能ファイルをAddOutputFilterByType選択するか、returnedで圧縮可能ファイルを選択するために使用しますContent-Type

于 2010-05-14T16:57:08.743 に答える
0

mod_deflateディレクティブをディレクトリセクションの外に移動する必要があります。のルールをグローバルに定義mod_deflateするhttpd.conf

于 2012-01-28T10:01:07.930 に答える
0

同じ問題を抱えている人がここにいる場合に備えて。

サーバーでmod_deflateをオンにしました。ブラウザの応答ヘッダーから、テキスト、css、およびjavascriptファイルがgzipで圧縮されていることがわかりました。HTMLファイルはヘッダーに従って圧縮されていませんでした。

それは私のウイルス対策だったことがわかりました。着信HTTPリクエストを傍受<html>し、レスポンスにタグが含まれている場合は、それを解凍し、「Webアンチウイルス」の一部として独自のJavaScriptをページに挿入します。応答からgzipヘッダーを取り除き、圧縮せずに配信します。

そのため、サーバーはすべてを正しくgzipし、アンチウイルスはそれが私に届く前に解凍していました。

于 2019-02-28T01:19:16.763 に答える