[解決済み] アクセス制御-許可-起源のワイルドカードサブドメイン、ポート、プロトコル
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 を有効にします (
例
).
関連
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] file:// URLから実行されるアプリケーションのリクエストで、"Origin null is not allowed by Access-Control-Allow-Origin" エラーが発生する。
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み】Access-Control-Allow-OriginでOriginが許可されない。
-
[解決済み】「アクセス制御-許可-オリジン」がない - Node / Apacheのポートの問題
-
[解決済み】AngularJS がクロスオリジンリソースに対して OPTIONS HTTP リクエストを実行する場合
-
[解決済み】S3 - アクセス制御-許可-起源ヘッダ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「プリフライトが無効です(リダイレクト)」または「プリフライト要求に対してリダイレクトは許可されていません」を解決する方法
-
[解決済み] Access-Control-Expose-Headersはなぜ必要なのですか?
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み] アクセス制御-許可-起源のワイルドカードサブドメイン、ポート、プロトコル
-
[解決済み】不透明な応答とは何ですか、そしてそれはどのような目的ですか?
-
[解決済み] Dev Tools NetworkでPre-flightリクエストをフィルタリング(非表示)する方法