10/02/2016 Gérer le access-control-allow-origin sur un mutualisé
Problématique : les polices de caractères sont hébergées sur un autre sous-domaine que celui de la page source.
Les navigateurs refusent de les charger, car la "cross-origin" n'est pas autorisée.
Solution : envoyer un header "Access-Control-Allow-Origin" via htaccess.
Comment faire lorsque le serveur Apache de son hébergement mutualisé n'a pas chargé le module mod_headers ?
Il suffit de l'envoyer en PHP.
D'abord on intercepte tous les appels de fichiers de polices :
RewriteRule ^icomoon\.([a-z]+) index.php?ext=$1 [L]
Puis on sert les fichiers correspondants accompagnés d'une en-tête :
<?php
if (!isset($_GET["ext"])) {
exit;
}
switch ($_GET["ext"]) {
case "svg" :
header('Content-type: image/svg+xml');
break;
case "woff" :
header('Content-type: application/font-woff');
break;
case "ttf" :
header('Content-type: application/font-ttf');
break;
case "eot" :
header('Content-type: application/vnd.ms-fontobject');
break;
default :
exit;
}
header("Access-Control-Allow-Origin: *");
die(file_get_contents("icomoon." . $_GET["ext"]));
Notez qu'il existe des techniques plus rapides pour servir un fichier tel quel, par exemple x-sendfile ; encore faut-il que le serveur soit équipé pour…
Commentaires
Ajouter un commentaire :
- Votre commentaire a bien été posté et sera publié après validation par le webmaster du site.