• ベストアンサー

htaccessで参照元制限

参照元によるアクセス制限で、許可する参照元をhttp://domain.com/にし、許可する拡張子を.htmlにしたいと考えています。http://domain.com/*.htmlというような書き方はできないのでしょうか? SetEnvIf Referer "^http://domain.com/" ref_ok order deny,allow deny from all allow from env=ref_ok

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

* によるワイルドカートでhtml全部を指定したい場合は * の前に . (ドット)をつけることで可能です 正規表現を見やすくすると下記のような感じでしょうか SetEnvIf Referer "^http://domain\.com/.*\.html$" ref_ok order deny,allow deny from all allow from env=ref_ok この場合http://domain.com/で始まって.htmlで終れば参照OKとなります ( ^ は先頭、$ は末尾であること明示的に示します) ■参照OKな例  http://domain.com/index.html からのアクセス  http://domain.com/hoge/foo.html からのアクセス ただ、この場合index.htmlを省略して / で終った場合参照NGとなるので SetEnvIf Referer "^http://domain\.com/.*\.html$" ref_ok の次行に SetEnvIf Referer "^http://domain\.com/(.*/)?$" ref_ok を加え、/ で終えるページからの参照も可能にすると良いかと思います (.*/)? 部分は存在してもしなくてもOKということです 上記の場合は http://domain.com/ からのアクセスか、 http://domain.com/~/ からのアクセスということを示しています // ちなみにこれはドメイン直下ではなく下層ディレクトリに .htaccessを配置して参照制限をかけようとしているのですよね? もしドメイン直下なら全てが見れなくなると思うので。 ※注意※  このサイトの特性上、コピペで使用すると  URL記述の前後に不可視の文字列が入る可能性があります  必ず本文をコピーではなく手打ちでお試し下さい  .htaccessの最終行の改行もお忘れなく  

cocolink
質問者

お礼

詳しく解説してくださり有難うございます。大変助かりました。

関連するQ&A