質問: '*' と同じ挙動で、どのドメインからでもアクセスできる。 **ソース** .htaccess ``` SetEnvIf Origin "^https?://(www\..*\.subdomain\.co\.jp|012.345.678.910:80)$" http_origin=$0 Header set Access-Control-Allow-Origin %{http_origin}e env=http_origin ``` jabascript ``` $.ajax({ url:'//www.abcd.subdomain.co.jp/cgi-bin/Suggest.cgi', type:'get', cache:false, dataType:'json' }); ``` **やりたいこと** 1.Apacheの.htaccessで指定されたorigin以外からのアクセスを弾きたい 2.設定するoriginは、IFのような条件分岐で、正規表現とmatchする場合のみ値を返すようにしたい このような感じです。 本日は、これで業務を終了しますので、明日、回答を読ませていただきたいと思います。 お急ぎでレスを投げて下さる方もいらっしゃるかとは、思いますが、 何卒、ご容赦くださいませ。 **追記** おはようございます。 本文中に一部、誤字脱字がありましたので、修正加筆致しました。 --- 以下、情報整理 一度、整理致します。 **ソース** .htaccess ``` SetEnvIf Origin "^https?://(www\..*\.subdomain\.co\.jp|012.345.678.910:80)$" http_origin=$0 Header set Access-Control-Allow-Origin %{http_origin}e env=http_origin ``` javaScript ``` $.ajax({ url:'//www.dcba.subdomain.co.jp/cgi-bin/Suggest.cgi', type:'get', cache:false, dataType:'json' }); ``` **headerの内容** ・指定外(つもり?)のオリジンからのアクセス * request heddas 1.Request URL:http://www.dcba.subdomain.co.jp/cgi-bin/Suggest.cgi?_=0123456789 2.origin:http://hogehoge.jp * response headers 1.Access-Control-Allow-Origin:http://hogehoge.jp * コンソールログ 1.XMLHttpRequest cannot load http://www.dcba.subdomain.co.jp/cgi-bin/Suggest.cgi?_=0123456789. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers in preflight response. ・指定した(つもり?)のオリジンからのアクセス * request heddas 1.Request URL:http://www.dcba.subdomain.co.jp/cgi-bin/Suggest.cgi?_=0123456789 2.origin:http:www.abcd.subdomain.co.jp * response headers 1.Access-Control-Allow-Origin:http:www.abcd.subdomain.co.jp * コンソールログ 1.なし 以上が現状、出ている情報です。 過不足は、対処いたしますので、御申しつけ下さい。 ついては、この状態、上記しました"**やりたいこと**"が出来ている状態なのでしょうか? お分かりになれば、ご回答をいただけると幸いです。
回答: `url:'//abcd.subdomain.co.jp/cgi-bin/Suggest.cgi'` このアクセスでは、`Access-Control-Allow-Origin`ヘッダーは付かなくないですか? `http(s)://www.(任意の文字).subdmain.co.jp` または `http(s)://012.345.678.910:80` しか`Access-Control-Allow-Origin`ヘッダーを付けないことになってますが。 chromeなどのデベロッパーツールでヘッダーが確認できますので、見てみたらどうでしょうか。 もしかしたら、別のところで、`Access-Control-Allow-Origin: *`が指定されてません?