Gzip या Deflate संपीड़न को सक्षम कैसे करें ।htaccess के माध्यम से?


22

कैसे Gzip या Deflate संपीड़न को सक्षम करने के लिए .htaccess के माध्यम से और कौन सा इन दिनों सबसे अच्छा है? कोड उदाहरण की जरूरत है।

जवाबों:


15

एचटीएमएल 5 बॉयलरप्लेट ( http://html5boilerplate.com ) कैशिंग, माइम प्रकार आदि जैसे अन्य लोगों के साथ-साथ सबसे अधिक अनुशंसित सबसे अच्छा और सबसे प्रभावी समाधान सेटिंग प्रतीत होता है।

<IfModule mod_deflate.c>

# Force compression for mangled headers.
# http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>


# Compress all output labeled with one of the following MIME-types
# (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
#  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
#  as `AddOutputFilterByType` is still in the core directives).

<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/x-web-app-manifest+json \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>

</IfModule>

संपादित करें: चूंकि यह प्रश्न और उत्तर कुछ वर्षों के बाद उठता रहता है, इसलिए मैं अधिक पूर्ण अनुकूलन के लिए H5BP सर्वर कॉन्फिगर लिंक लगा रहा हूं ।

EDIT: https://github.com/h5bp/server-configs-apache का निश्चित लिंक


12

Apache mod_deflate प्रलेखन देखें , विशेष रूप से, " छवियों को छोड़कर सब कुछ संकुचित करें " उदाहरण। यह मेरे लिए अच्छी तरह से काम किया है और एक .htaccessफाइल में निम्नानुसार डाला जाएगा :

<IfModule mod_deflate.c>
        # Insert filter
        SetOutputFilter DEFLATE

        # 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

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

और, निश्चित रूप से, सुनिश्चित करें कि httpd.confसक्षम करने के लिए आपकी फ़ाइल में निम्नलिखित हैं mod_deflate:

LoadModule deflate_module libexec/apache2/mod_deflate.so

9

मैंने .htaccessअपनी public_htmlनिर्देशिका की जड़ में फ़ाइल में निम्नलिखित जोड़कर अपनी साइट पर (MIME प्रकार द्वारा) स्थैतिक संपत्ति को अपवित्र करने में सक्षम किया :

<ifModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
  AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript application/json
</ifModule>

आप इसे फ़ाइल एक्सटेंशन द्वारा भी सक्षम कर सकते हैं, हालांकि मेरे पास उस आसान के लिए वाक्यविन्यास नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.