質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

解決済

1回答

3702閲覧

CORSが解消しない。

1000

総合スコア204

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

1クリップ

投稿2021/03/31 10:17

環境

メインのコーポレートサイトがヘテムルで、そこにフォントファイルをアップしています(wwwドメイン)。
カラーミーショップをコーポレートのサブドメインを利用して運用していますが、wwwドメインのほうにアップしてあるCSSにて

CSS

1@font-face { 2 font-family: "font-name"; 3 src: url("//www.XXXXX.jp/font/font-file.ttf"); 4・・・

といった形でフォントを読み込んでます。

エラー内容

何をどうやっても以下エラーでChrome,Firefox,Edgeにてフォントが読み込まれません。

Access to font at 'https://www.XXXXX.jp/font/brown/font-file.woff' from origin 'https://shop.XXXXX.jp' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'http://shop.XXXXX.jp' that is not equal to the supplied origin.

なぜかmacのSafariとiOSのChrome,Safariは読み込まれていてCORSエラーが出ず、問題ないようです。
(当方macなのでWin環境は未確認です)

header has a value 'http://shop.XXXXX.jp' 〜 とあるのですがカラーミーはhttpsで運用しているためおかしいなと思ったのですが、この辺に何かヒントがあるのでしょうか。。

対策したこと

.htaccessにて

htaccess

1 2<IfModule mod_headers.c> 3 <FilesMatch ".(ttf|otf|eot|woff)$"> 4 Header set Access-Control-Allow-Origin "*" 5 Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" 6 </FilesMatch> 7</IfModule> 8 9<IfModule mod_headers.c> 10 <FilesMatch ".(ttf|otf|eot|woff)$"> 11 SetEnvIf Origin "^https?://shop.XXXXX.jp$" ORIGIN=$0 12 Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN 13 </FilesMatch> 14</IfModule> 15 16<IfModule mod_headers.c> 17 <FilesMatch ".(ttf|otf|eot|woff)$"> 18 Header append Access-Control-Allow-Origin: * 19 </FilesMatch> 20</IfModule> 21 22<IfModule mod_headers.c> 23 <FilesMatch ".(ttf|otf|eot|woff)$"> 24 Header set Access-Control-Allow-Origin: * 25 </FilesMatch> 26</IfModule> 27 28<IfModule mod_headers.c> 29 <FilesMatch ".(ttf|otf|eot|woff)$"> 30 Header append Access-Control-Allow-Origin: "https://shop.XXXXX.jp" 31 </FilesMatch> 32</IfModule> 33 34<IfModule mod_headers.c> 35 <FilesMatch ".(ttf|otf|eot|woff)$"> 36 Header set Access-Control-Allow-Origin: "https://shop.XXXXX.jp" 37 </FilesMatch> 38</IfModule> 39 40<IfModule mod_headers.c> 41 <FilesMatch ".(ttf|otf|eot|woff)$"> 42 Header set Access-Control-Allow-Origin: "https://shop.XXXXX.jp" 43 </FilesMatch> 44</IfModule> 45

などネットの情報を頼りにあらゆるパターンをやってみました。(上記はいっぺんにではなく一つずつ試しました)
それでもダメで、WPでwww側のサイトは構築しているので、functions.phpに

php

1<?php 2header("Access-Control-Allow-Origin: *");

とも記述してみました。がダメでした。

以上になりますが、何かお気づきの方いればヒントをお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ex025

2021/03/31 16:34

<?php header("Access-Control-Allow-Origin: http://shop.XXXXX.jp"); ワイルドカードを用いた指定「*」は、ブラウザによってはセキュリティ上の理由で弾いている可能性があります。具体的な値を設定してみてください。
1000

2021/04/01 02:02 編集

ありがとうございます。試してみましたがやはりダメでして、おかしいと思って発想を変えたところ自己解決しました! どうやらfontが置いてあるフォルダ自体に.htaccessがすでに存在していて、今回の改修によってhttp→httpsに変更になったという経緯があったみたいですが(ここ担当してなくてわからなかった)フォントフォルダの.htaccessはhttpのままだったというのが原因だったようです。
guest

回答1

0

自己解決

fontが置いてあるフォルダ自体に.htaccessがすでに存在していて、今回の改修によってhttp→httpsに変更になったという経緯があったみたいですが(ここ担当してなくてわからなかった)フォントフォルダの.htaccessはhttpのままだったというのが原因だったようです。

htaccess

1Header set Access-Control-Allow-Origin "http://shop.XXXX.jp" 2                           ↓ 3Header set Access-Control-Allow-Origin "https://shop.XXXX.jp"

これで解消しました!なんとくだらない原因。。

投稿2021/04/01 02:04

1000

総合スコア204

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問