Come servire un tipo di carattere gziped usando .htaccess? (Senza gzip o sgonfiare mod)
Domanda
Ecco un elenco di cose che ho provato in ordine casuale:
AddHandler application/x-httpd-php .otf
AddType
default_mimetype
auto_prepend_file = "otf.php"
zlib.output_compression = On
output_handler = ob_gzhandler
header("Content-type: application/octet-stream");
Anche se tutti i file PHP del server ottenere gzipped usando zlib, sostituendo l'estensione .php .otf da non funzionavano.
Soluzione
Con .htaccess, si potrebbe fare in questo modo, assumendo file di font è fontfile.otf.gz
, richiesta del browser che, come fontfile.otf
RewriteEngine On
#Check for browser's Accept-Encoding, remove it for force return gzipped one
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith otf
RewriteCond %{REQUEST_FILENAME} "\.(otf)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .otf.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.otf\.gz$">
AddEncoding gzip .gz
ForceType "text/plain"
</FilesMatch>
E se file di font e il sito web è tra domini, è necessario mettere Access-Control-Allow-Origin
, Firefox non verrà caricato carattere di oggetti tra domini .
In Gecko, font web sono soggetti alla stessa restrizione del dominio (file dei font devono essere sullo stesso dominio della pagina il loro utilizzo), a meno che l'accesso HTTP controlli vengono utilizzati per rilassarsi questo restrizione.
Header set Access-Control-Allow-Origin *