1. ホーム
  2. .htaccess

[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?

2022-03-19 10:17:13

質問

を使用して、複数のクロスドメインを許可する方法はありますか? Access-Control-Allow-Origin ヘッダを作成できますか?

を意識しています。 * しかし、それはあまりにもオープンです。本当に2、3のドメインだけを許可したいのです。

例として、こんな感じ。

Access-Control-Allow-Origin: http://domain1.example, http://domain2.example

上記のコードを試しましたが、Firefoxではうまくいかないようです。

複数のドメインを指定することは可能ですか、それとも1つだけですか?

解決方法は?

推奨される方法は、サーバーがクライアントからOriginヘッダを読み、それを許可したいドメインのリストと比較し、一致する場合は Origin ヘッダとしてクライアントに返されます。 Access-Control-Allow-Origin ヘッダをレスポンスに追加します。

.htaccess を使うと、こんな風にできます。

# ----------------------------------------------------------------------
# Allow loading of external fonts
# ----------------------------------------------------------------------
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
    <IfModule mod_headers.c>
        SetEnvIf Origin "http(s)?://(www\.)?(google.com|staging.google.com|development.google.com|otherdomain.example|dev02.otherdomain.example)$" AccessControlAllowOrigin=$0
        Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
        Header merge Vary Origin
    </IfModule>
</FilesMatch>