• 締切済み

.htaccessで特定のドメインを弾きたい

 http://www.aaa.com/ というURLがあるとして、そのサブドメインを全てアクセス出来ないようにしたいと思っています。  http://bbb.aaa.com/  http://ccc.aaa.com/ 上記のようなURLになります。  SetEnvIf Referer "http://bbb.aaa.com/" shutout このように弾いていたのですが、bbbにあたる部分は固定ではないのです。 ファイルなどの場合は、ワイルドカードを使った説明もあったのですが リファラの場合も  SetEnvIf Referer "http://*.aaa.com/" shutout このような感じで、使えるのでしょうか? ご助言よろしくお願いいたします。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

http://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E5%85%A5%E9%96%80&hl=ja&lr=lang_ja どれか適当なのを参考に、特殊記号類がどういう役割を持っているのか把握したら、この先もっと複雑な指定ができるようになれるよ

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif 一部抜粋 --------------------------------- 二つ目の引数 (regex) は Perl 互換の正規表現 --------------------------------- http://www.google.co.jp/search?q=perl%E3%81%AE%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&hl=ja&lr=lang_ja 「*」じゃなく「.*」じゃないかな。 それと正規表現だから「.」(ピリオド)は「\」でエスケープしないとワイルドカード的に言う「?aaa?com」って形になっちゃうよ

fesmy2
質問者

お礼

コピペしたら、なぜか文字化けしてしまいました。 SetEnvIf Referer "http://.*\.aaa\.com/" shutout または SetEnvIf Referer "http://\.*\.aaa\.com/" shutout です。今度は大丈夫でしょうか…

fesmy2
質問者

補足

ありがとうございます。 下記のような感じで良いのでしょうか? SetEnvIf Referer "​http://.*\.aaa\.com/"​ shutout 「.*」の前にも「\」が必要ですか? よろしくお願いいたします。

関連するQ&A