CORSポリシーで「*」じゃなくて1つじゃなくて2〜3個許可したいドメインがあるんだけどhtaccessで複数設定できるんだろうか?

Invalid argument supplied for foreach()でWarningエラーが出たので出ないようにした ひとまず書いてる

Access to XMLHttpRequest athas been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.のエラーメッセージが出たので、ドメイン1つ許可したんですよ。そしたらさらに2つ追加したいってことで記述方法がわからなったけどわかったのでシェア。
1つ設定するのは、
Header set Access-Control-Allow-Origin “https://example.com”
これだよね。複数設定したい時は?

解決

.htaccessにSetEnvIf Originで複数ドメイン記述できるぞ

<IfModule mod_headers.c>
    SetEnvIf Origin "^https?://(www.example.com|stg.example.jp|dev.mylocal.jp)$" ORIGIN=$0
    Header append Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN
    Header append Access-Control-Allow-Headers "Content-Type"
</IfModule>

複数設定で1つ1行で記述したり、カンマ区切りで記述したり試したけど最後のしか有効にならんかったよ。

Header set Access-Control-Allow-Origin “http://example.com”
Header set Access-Control-Allow-Origin “http://www.example.com”
だったり、
Header set Access-Control-Allow-Origin “http://example.com, http://www.example.com”
みたいなやつはうまく行かない例。

コメント

タイトルとURLをコピーしました