- 締切済み
.htaccess 直リンク防止について
自サイトのホームページで動画ファイル(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に設定しています。 どこか間違っているのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- umasikajiro
- ベストアンサー率67% (545/803)
うちのサーバー(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.html#allowoverride この場合はサーバー管理者にしか設定しなおし出来ませんのでユーザー側ではどうにも成りません ・403になる場合 ホスト名が違っていませんか? http://www.xxxxxx.comではなくhttp://xxxxxx.comでアクセスしているとか? #1 の記述では Referer無しでもOKなので リンクをたどらず 直接 ブラウザに画像のURLを入力した場合はどうなりますか?
- umasikajiro
- ベストアンサー率67% (545/803)
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様 ご回答ありがとうございます。 教えて頂いた通り試してみましたが、やはりダメでした。 色々また悩んでるのですがどうしたらいいんでしょう?
補足
umasikajiro 様 とても詳しいご回答ありがとうございます。 まだ途中段階ですが試行錯誤しています。 とりあえず今分かっている事は、エラー内容は「500 Internal Server Error」です。 コピー&ペーストでテキストエディタへ貼り付け編集しているので間違っていないはずなのですが・・ 直接ブラウザへ画像のURLを入力した場合も500エラーになります。 ・500 に成る原因 2. 記述を許可されていない場合 ↑これに関してはサーバ業者へ問い合わせしてみます。 あとちなみの参考までに、動画/画像ファイルはhtmlファイルとは別のサーバです。 もうすこしやってみます。 またご回答頂けたらと思います。 よろしくおねがいします。