.htaccess – comment définir dynamicment les en-têtes par domaine?

J’essaie de faire fonctionner CORS avec plusieurs domaines.

Header add Access-Control-Allow-Origin "http://localhost, http://multiplay.io" 

Cependant, il semble que la plupart des navigateurs ne supportent qu’un seul domaine. On m’a dit que la solution consiste à définir l’en-tête par domaine entrant.

Comment faites-vous cela en utilisant le fichier .htaccess?

Si vous ne souhaitez alterner que deux valeurs, vous pouvez utiliser SetEnvIf pour différencier les deux.

 SetEnvIf Referer "^http://localhost/" is_localhost Header add Access-Control-Allow-Origin http://localhost env=is_localhost Header add Access-Control-Allow-Origin http://multiplay.io env!=is_localhost 

Il peut y avoir une solution plus élégante, mais quelque chose comme les directives (non testées) ci-dessus devraient fonctionner.

(Notez qu’il est sortingvial de falsifier un en-tête Referer, alors soyez conscient des implications de sécurité des en-têtes Referer lors de l’utilisation des en-têtes Referer pour pratiquement tout.)

De plus, si vous souhaitez simplement autoriser tous les hôtes, vous pouvez spécifier * au lieu de répertorier plusieurs noms d’hôte:

 Header add Access-Control-Allow-Origin * 

Mais je suppose que vous le saviez déjà et que vous ne voulez pas être aussi permissif.