• ベストアンサー

htaccessでリンク元を参照したい(直リンクを防止)

PERLでは$ENV{'HTTP_REFERER'}でリンク元を参照する事ができますが、 これをhtaccessで参照する事はできるのでしょうか。 目的は、gifファイルやjpegファイルに特定のURLからのリンクのみアクセスできるようにしたいのです。 HTML表示では画像が表示されるが、画像への直接のアクセスはできないようにしたいのです。 (いわゆる直リンクの防止) たいへん困っております。詳しい方いらっしゃいましたら、よろしくお願いいたします。

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

  • ベストアンサー
  • gaball
  • ベストアンサー率61% (27/44)
回答No.2

SetEnvIfとdenyの組み合わせである程度の事はできるかもしれませんね。 例えば SetEnvIf Referer www\.myhost\.com Check Order Deny,Allow Deny from all Allow from env=Check とかでwww.myhost.com以外からのアクセスは拒否できると思います。 (今試せる環境にないので試してはいませんが・・・・) 参考になりましたでしょうか?

0011001100
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法で、うまくいきました。 教えて!gooのなかで皆さん「htaccessで直リンクを防止できる」と書いているわりには、具体的な方法を書かれている方はいないので困っておりました。 以下のURLに私と同じ問題で困っている方がいらっしゃいますので、 お暇がありましたら、その方にもお教しえしてあげられませんでしょうか。 同情しております。(私が教えるのも変だと思いますので) http://oshiete1.goo.ne.jp/kotaeru.php3?q=10294 今回は本当にありがとうございました。 今後何かの機会にはまたよろしくお願いいたします。

その他の回答 (1)

回答No.1

Perlには詳しくありませんが、 .htaccessでは無理なような気がします。 Perlのプログラムができるなら、 1.JPG,GIF等のファイルをあるディレクトリに置く(HTTPアクセス不可な場所) 2.Perl等で下記のようなCGIプログラムを組む    binmodeで1.のディレクトリからファイルを読み、標準出力で吐き出す。    (その時にPerlの$ENV{'HTTP_REFERER'}でチェック) 以前、このやり方でTXTや画像等を出力させました こういうやり方もありますよ (泥臭いかもしれませんが)

0011001100
質問者

お礼

ご回答ありがとうございます。 smart600ccさんの方法は、よく画像アクセスカウンターで使われている方法ですね。 ただ、そのようにしてしまう場合、HTML内の画像リンクをすべて.cgiにしなくてはいけなくなります。 これではサーバーにたいへんな負担がかかることになりますし、 やはり.htaccessで処理したく思います。 ご回答は今後何かの時に役立てたいと思います。ありがとうございました。

関連するQ&A

  • htaccessで直リンク防止をしたらindexが見れない…

    htaccessの記述で困っております。 初歩的なミスをしているのかもしれませんが、何かお気づきの点がありましたら教えてください。 htaccessで設定したいこと: ・外部からの全ファイルへの直リンクを避けたい ・でも一部のファイルは直リンクを許可したい(バナー画像やindexなど) 手探りで記述してみたところ、なんとか成功したのですが トップページへのアクセスがはじかれてしまいます。 http://●●●/index.html にはアクセスできますが http://●●●/ だと表示されない、という状態です。 index.htmlに直接アクセスされても実質的には変わらないのですが、 できればアドレスを短くすっきりさせたいんです。 SetEnvIf Referer "^http://●●●/" ref01 order deny,allow deny from all allow from env=ref01 <Files ~ "^(banner\.jpg|index\.html|http://●●●/)$"> allow from all </Files> 何か改善点はないでしょうか?

  • .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に設定しています。 どこか間違っているのでしょうか?

  • .htaccessで直リンク規制

    会員制のページの入ってるフォルダを.htaccessで指定されたところ意外からのアクセス(直リンク)を規制しようと思って以下の内容のファイルを置きました SetEnvIf REFERER "OOO\.ddo\.jp/OOO\.html" Lilith Order Deny,Allow Deny from all Allow from env=Lilith しかしこれだと、許可したページ(上記の「OOO\.ddo\.jp/OOO\.html」の部分)からのアクセスでもはじいてしまってForbiddenのエラーが表示されてしまいます。どう対処すればいいのでしょうか?アドバイスお願いします。

  • htaccessでの画像直リン対策

    http://blog.○○○.○○○/index.html というブログ用のサブドメインを作成しました。 その中の画像フォルダ http://blog.○○○.○○○/img/ にhtaccessで直リン対策をしたのですが 検索サイトから飛んで http://blog.○○○.○○○/index.html を表示すると画像が×マークになることが分かりました。 htaccessは下記のように記載しました。 SetEnvIf REFERER "blog.○○○.○○○/" Lilith Order Deny,Allow Deny from all Allow from env=Lilith REFERERが検索サイトからだったために画像が表示されなかったのでしょうか。もしそうだとするとどのように記載したら他サイトからのリンクでもちゃんと画像が表示されるのでしょうか。

  • CGIへの直リンク防止方法について

    CGIへの直リンクの防止方法について質問です. MacOS X でWEBサーバーを構築しています.httpdはapacheです. 現在,http://www.aaa.jp/bbb/ccc.htmlからhttp://www.aaa.jp/cgi-bin/ccc.cgiへリンクさせています.ccc.htmlへは.htaccessを用いてパスワードによるアクセス制限を行っております. 今の設定ですと,cgiファイルへ直接リンクできてしまいます.そこで,直接リンクを防止するために,apache内に <Directory /library/var/cgi-bin> SetEnvIf Referer "^http://www\.aaa\.jp/ ref_ok order deny,allow deny from all allow from env=ref_ok </Directory> という記述をしました.しかしこの記述を加えるとcgiを実行できなくなってしまいます.cgi-biフォルダ内の.htaccessを有効にして,.htaccessで記述してもうまくいきません. この記述はhttp://www.shtml.jp/htaccess/referer.htmlを参考にしました. どこがおかしいところはありますでしょうか. ご教授お願いします.

  • .htaccessについておしえてください。

    外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。.htaccessで特定のサイトからのみ参照を許可するという記事を見ました。 例えばヘテムルのサーバでhttp://abc.heteml.jp/def/index.htmlからの参照を許可するのに、.htaccess に以下のように書きました。 SetEnvIf Referer "http://abc.heteml.jp/def/index.html" allow_ref SetEnvIf Referer "^$" allow_ref order deny,allow deny from all allow from env=allow_ref .htaccess については全然分かっていません。記事に載っていた内容を少し変える程度なので、詳しく教えていただきたいと思い、投稿しました。jsファイルを見られないようにすることはできるのか?また、.htaccessの参考サイトなどあれば教えてください。

  • .htaccessについて教えてください。

    添付した画像のようなディレクトリ構造のサイトをつくりAndroidとiPhoneからのアクセスのみを許可するように (1)の.htaccessには SetEnvIf User-Agent "Android" ok1 SetEnvIf User-Agent "iPhone" ok2 order deny,allow deny from all allow from env=ok1 allow from env=ok2 と記述し、 http://adcde.heteml.jp/access/index.htmlからだけのjsファイルへのアクセスを許可しようと (2)の.htaccessには SetEnvIf Referer "^http://adcde\.heteml\.jp" ShowOK SetEnvIf Referer "^$" ShowOK <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ShowOK </Files> と記述しました。 PCからhttp://adcde.heteml.jp/accessとすると403 errorForbiddenとなり思ったようにいくのですが、PCからhttp://adcde.heteml.jp/access/js/test.jsとするとjavascriptの中身が表示されてしまいます。 AndroidとiPhone以外からのアクセスは(1)の.htaccessで拒否されるのでは?また、(2)の.htaccessでjsファイルへの直リンクを避けているのでは?と、うまくきません。.htaccessの記述や設置する場所、またヘテムルのサーバー側の原因かなどを教えていただきたく思い投稿しました。いろいろなサイトを調べながらの.htaccessの知識で、あまりよく分かっていません。詳しく教えていただければありがたいです。よろしくお願いします。

  • .htaccessについておしえてください。

    外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。 .htaccessで特定のサイトからのみ参照を許可するという記事を見ました。 例えばヘテムルのサーバにあるhttp://abc.heteml.jp/def/index.htmlからだけhttp://abc.heteml.jp/def/js/test.jsに参照を許可するのに、.htaccess に以下のように書きました。 SetEnvIf Referer "^http://abc\.heteml\.jp" ok_url <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ok_url </Files> 直リンクしようとすると500 error Internal Server Errorとなります。しかし、index.htmlにjs/test.jsが効かなくなりました。 .htaccess については全然分かっていません。いろいろなサイトを見ながらやっているのですが、うまくいきません。詳しく教えていただきたいと思い、投稿しました。 よろしくお願いします。

  • .htaccessで画像の転送を差し替える方法

    記事内容をまるまるコピーするブログへの対策をしたいと考えています。 いくつかの方法の中で画像への直リンク対策としてこのようなものが紹介されてました。 RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://spamsite.com/.*$ RewriteRule ^(.*).(jpeg|jpg|gif|png)$ forspam.gif 特定のドメインからアクセスが来たら特定の画像に差し替えるというものです。 これを「特定のドメイン以外からのアクセスが来たら」にしたいのですが、どのようにしたらよいでしょうか。 つまり自分が独自のドメインを使っているなら、わざわざスパムサイトのドメインを指定せず、自分のドメイン以外からのアクセス(リファラー)を差し替えれば楽なのではないかという考えです。 この考え方だと問題があるのでは、という意見も含めてお待ちしております。

    • ベストアンサー
    • PHP
  • mod_rewriteで直リン防止

    直リン防止のためmod_rewriteを.htaccessで設定してみました。 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://xxxx\.com/.*$ [NC] RewriteRule ^(.*)$ - [F] この設定で画像は直リン防止できましたが動画は直リン防止が できず、リンクからも読み込めなくなりました。 どうにか動画直リンを防ぐ設定はないでしょうか?

専門家に質問してみよう