- ベストアンサー
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
- みんなの回答 (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の最終行の改行もお忘れなく
お礼
詳しく解説してくださり有難うございます。大変助かりました。