プロが教えるわが家の防犯対策術!

自サイトのホームページで動画ファイル(wmv)に対する直リンクを防ぐために、.htaccessを設置したのですが、その結果自分のサイトからもエラーになってしまいます。記述内容は以下です。

<Files ~ "\.(gif|png|jpg|wmv)$">
SetEnvIf Referer "^http://www\.xxxxxx\.com" ShowOK
SetEnvIf Referer "^$" ShowOK
order deny,allow
deny from all
allow from env=ShowOK
</Files>

------------------------
http://www\.xxxxxx\.com は自分のサイトURLです。
FTPでアップする時は、アスキーモードでアップしています。
属性変更では644に設定しています。

どこか間違っているのでしょうか?

A 回答 (2件)

うちのサーバー(Apache/2.2.3 (Unix) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.7l Server at test.*****.jp Port 80)


では問題なく出来ましたが

ダメというのはステータスコードが500でしょうか?それとも403?
もしMSIEをお使いでステータスコードが出ない場合は
[ツール]>[インターネットオプション]>[詳細設定]を開き
[]Httpエラーメッセージを簡易表示する<=このチェックを外して[OK]ボタンを押してから
MSIEを一旦全てのウィンドを閉じ また開いてアクセスしてみてください。
タイトル欄に 500 または 403が出るはずです

・500 になる場合の原因1. 構文エラー
  文法上のミスです。 #1に書いた
  SetEnvIf 行から
  </Files> 迄の記述のみなら問題ないはずですが
  余分な記述をしていませんか? 全角スペースなど入れていませんか?

・500 に成る原因 2. 記述を許可されていない場合
  #1に書いた記述を動かすためにはサーバーの設定file(httpd.confなど)
  の該当ディレクトリで AllowOverride にFileInfoと Limitの2つが記述されていない場合
  .htaccessに許可されていない記述があるとして500エラーになります
   http://httpd.apache.org/docs/2.2/ja/mod/core.htm …
  この場合はサーバー管理者にしか設定しなおし出来ませんのでユーザー側ではどうにも成りません

・403になる場合 ホスト名が違っていませんか?
 http://www.xxxxxx.comではなくhttp://xxxxxx.comでアクセスしているとか?
 #1 の記述では Referer無しでもOKなので リンクをたどらず
  直接 ブラウザに画像のURLを入力した場合はどうなりますか?

この回答への補足

umasikajiro 様
とても詳しいご回答ありがとうございます。

まだ途中段階ですが試行錯誤しています。
とりあえず今分かっている事は、エラー内容は「500 Internal Server Error」です。
コピー&ペーストでテキストエディタへ貼り付け編集しているので間違っていないはずなのですが・・

直接ブラウザへ画像のURLを入力した場合も500エラーになります。

・500 に成る原因 2. 記述を許可されていない場合
↑これに関してはサーバ業者へ問い合わせしてみます。

あとちなみの参考までに、動画/画像ファイルはhtmlファイルとは別のサーバです。

もうすこしやってみます。

またご回答頂けたらと思います。
よろしくおねがいします。

補足日時:2008/06/06 20:08
    • good
    • 0

SetEnvIf を <Files コンテナから出してください



SetEnvIf Referer "^http://www\.xxxxxx\.com" ShowOK
SetEnvIf Referer "^$" ShowOK
<Files ~ "\.(gif|png|jpg|wmv)$">
order deny,allow
deny from all
allow from env=ShowOK
</Files>

この回答への補足

umasikajiro様
ご回答ありがとうございます。
教えて頂いた通り試してみましたが、やはりダメでした。

色々また悩んでるのですがどうしたらいいんでしょう?

補足日時:2008/06/02 00:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!