Gzip et SVG?

assodefisassodefis Member
mai 2020 modifié dans Modifications

Bonjour,

Gzip est activé dans le panneau administration.
Gzip est activé dans les serveurs mutualisés d'OVH.

La compression fonctionne pour tous les éléments, sauf pour les images .svg or d'après GTmetrix, les svg peuvent gagner jusqu'à 70% si elles sont compressé par Gzip.

Est-ce qu'il est possible d'ajouter quelque part dans le code de PluXml l'ordre à Gzip de compresser aussi les .svg? J'ai essayé de suivre des tutos pour ajouter cet ordre dans le .htaccess mais sans succès.

En passant, voici le .htaccess que j'avais mis.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN -- Pluxml
Options -Multiviews
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Réécriture des urls
RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
</IfModule>
# END -- Pluxml
AddType image/svg+xml svg svgz
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 7200 seconds"
    ExpiresByType image/* "access plus 2592000 seconds"
    ExpiresByType application/javascript "access plus 2592000 seconds"
    ExpiresByType application/x-javascript "access plus 2592000 seconds"
    ExpiresByType text/css "access plus 2592000 seconds"
</IfModule>
<IfModule mod_headers.c>
    <FilesMatch ".*\.(?:jpe?g|png|svg|gif|js|css)$">
    Header set Cache-Control "max-age=2592000, public"
    </FilesMatch>
</IfModule>
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_keep_workfiles No
mod_gzip_can_negotiate Yes
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
mod_gzip_command_version '/mod_gzip_status'
mod_gzip_min_http 1000
mod_gzip_minimum_file_size 300
mod_gzip_maximum_file_size 512000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_temp_dir /tmp
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.php$
mod_gzip_item_include file \.pl$
mod_gzip_item_include file \.rb$
mod_gzip_item_include file \.py$
mod_gzip_item_include file \.cgi$
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.svg$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

Cette ligne me paraît étrange mais elle était dans les tutos...

    mod_gzip_item_exclude mime ^image/.*

Maintenant, j'ai enlevé toute la partie "IfModule mod_gzip.c" en me disant qu'il faut peutr-être changer quelque chose dans PluXML.

Réponses

  • J'ai fini par trouver comment faire. Voici mon fichier .htaccess qui m'a permis d'obtenir le résultat attendu.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    # BEGIN -- Pluxml
    Options -Multiviews
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    # Réécriture des urls
    RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
    RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
    </IfModule>
    # END -- Pluxml
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 7200 seconds"
        ExpiresByType image/* "access plus 2592000 seconds"
        ExpiresByType application/javascript "access plus 2592000 seconds"
        ExpiresByType application/x-javascript "access plus 2592000 seconds"
        ExpiresByType text/css "access plus 2592000 seconds"
        ExpiresByType application/x-font-ttf "access plus 2592000 seconds"
        ExpiresByType application/x-font-woff "access plus 2592000 seconds"
    </IfModule>
    <IfModule mod_headers.c>
        <FilesMatch ".*\.(?:jpe?g|ico|png|svg|gif|js|css|ttf|woff)$">
        Header set Cache-Control "max-age=2592000, public"
        </FilesMatch>
        <FilesMatch "\\.(html|htm)$">
        Header set Cache-Control "max-age=7200, public"
        </FilesMatch>
    </IfModule>
    <IfModule mod_deflate.c>
      # Compress HTML, CSS, JavaScript, Text, XML and fonts
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
    
      # Remove browser bugs (only needed for really old browsers)
      BrowserMatch ^Mozilla/4 gzip-only-text/html
      BrowserMatch ^Mozilla/4\.0[678] no-gzip
      BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
      Header append Vary User-Agent
    </IfModule>
    
Connectez-vous ou Inscrivez-vous pour répondre.