1. ホーム
  2. cors

[解決済み] アクセス制御-許可-起源のワイルドカードサブドメイン、ポート、プロトコル

2022-03-25 16:46:56

質問

すべてのサブドメイン、ポート、プロトコルでCORSを有効にしようとしています。

例えば、以下のようなXHRリクエストを実行できるようにしたい。 http://sub.mywebsite.com:8080/ から https://www.mywebsite.com/ *

一般的には、オリジンにマッチした(に限定した)リクエストを有効にしたいと思います。

//*.mywebsite.com:*/*

解決方法は?

DaveRandomの 答え 私もいろいろやっているうちに、同じ結果になる、もう少し単純な Apache の解決策を見つけました ( Access-Control-Allow-Origin は、書き換えルールを使用せずに、現在の特定のプロトコル+ドメイン+ポートに動的に設定されます)。

SetEnvIf Origin ^(https?://.+\.mywebsite\.com(?::\d{1,5})?)$   CORS_ALLOW_ORIGIN=$1
Header append Access-Control-Allow-Origin  %{CORS_ALLOW_ORIGIN}e   env=CORS_ALLOW_ORIGIN
Header merge  Vary "Origin"

そして、これで終わりです。

親ドメイン(例:mywebsite.com)に加え、そのすべてのサブドメインでもCORSを有効にしたい場合は、1行目の正規表現を次のように置き換えるだけです。

^(https?://(?:.+\.)?mywebsite\.com(?::\d{1,5})?)$ .

仕様準拠 を追加し、正しいキャッシュ動作をさせるようにしてください。 Vary: Origin レスポンスヘッダは、CORS を有効にしたリソースに対して、CORS 以外のリクエストや許可されないオリジンからのリクエストであっても、CORS を有効にします ( ).