Gestire i web fonts in modo cross-domain

Gestire i web fonts in modo cross-domain

Alcuni browser (Firefox in primis) non permettono di scaricare e usare i web fonts da un dominio diverso da quello corrente. Questa policy, chiamata same domain, impedisce a siti terzi di usare i web fonts di altri siti. Infatti se ciò accadesse potrebbero sorgere dei problemi nella licenza d'uso dei font stessi. In altre parole, se voi avete acquistato un font e un altro sito lo usa a vostra insaputa, ciò viola la licenza d'uso del font. Per fortuna ci sono due soluzioni per poter usare i web fonts in modo cross-domain, come nel caso dei sottodomini di un vostro sito.

La soluzione di CSS Bakery

La prima soluzione consiste nel modificare il file httpd.conf di Apache aggiungendo le seguenti direttive:

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
<FilesMatch "\.(ttf|otf|eot)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

Lo svantaggio di questa soluzione, descritta in questo articolo, è che consente a tutti di avere accesso ai web fonts.

La soluzione di Lowest Common Denominator

La seconda soluzione, descritta in questo articolo, è più restrittiva nel senso che consente solo a determinati domini di avere accesso alle risorse. Questa soluzione è anche più accessibile in quanto fa uso del file .htaccess e non del file di configurazione del web server:

<FilesMatch "\.(eot|otf|woff|ttf)$">
  SetEnvIf Origin »
    "^http(s)?://(.+\.)?(domain1\.org|domain\.com)$" origin_is=$0
  Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
</FilesMatch>

Potete usare i vostri nomi di dominio nell'espressione regolare per verificarne gli effetti.

Torna su