• ベストアンサー

「クリックして表示される画像が、右クリックでは保存できない」設定

リンクをクリックすると、別ウィンドウが開いて画像が表示されるページがあります。 (ソースは<a href="○○.jpg" target=_blank>●●●</a>です。) ブラウザはIEを使っているのですが、 リンクを右クリックし、「対象をファイルに保存」を選ぶと、 ○○.jpgではなくて403.htmが保存されます。 おそらくサーバ側でそのような設定をしているのではないかと思うのですが、 Apacheの場合、どのようにすれば上記の環境になりますが?

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

403というのはアクセス拒否です。リクエスト時にブラウザから送信される REFERER が設定されていなかったり、外部ドメインだったりする場合はアクセスが拒否され、403エラーが返されます。 この方法はアダルトサイト等で画像を直接ダウンロードされるのを拒否するためによく利用されています。 実現するためには以下の方法を使用します。 - mod_access.c と mod_setenvif.c を有効にする - 以下の設定を httpd.conf ファイルに追加する <Files ~ "\.(gif|jpe?g|png)$"> SetEnvIf REFERER "http://www.mydomain.com/" Lilith Order Deny,Allow Deny from All Allow from env=Lilith </Files> これで、referer がセットされない直リンクは拒否されます。

owlcity
質問者

お礼

REFERERがセットされているかいないかをサーバ側が判断していたのですね。 丁寧に記述くださったおかげで、わかりやすかったです。 どうもありがとうございました。 おかげで、こちらでも同様の環境を作ることができました。

その他の回答 (1)

  • fanheater
  • ベストアンサー率15% (6/39)
回答No.1

それは画像が表示されるページが単にjpeg画像だけのページではなく、他のフォントや広告、壁紙なども一緒になったページの可能性があるので、解決方法としては、実際に画像を出してから、その画像を右クリックして「コピー」→保存したい場所(マイドキュメントなど)で右クリックして「貼り付け」をクリックすればOKです。 もうひとつ考えられるのは、403などの数字は、そのファイルがすでに削除または移動してしまい、もうそこの場所にはない時にエラーとして出る事がよくあるので、実際にクリックして画像が表示されるか確かめてみてください。

owlcity
質問者

お礼

ありがとうございました。

owlcity
質問者

補足

ご回答ありがとうございます。 ただ、残念ながらどちらも違います。 > それは画像が表示されるページが単にjpeg画像だけのページではなく、他のフォントや広告、壁紙なども一緒になったページの可能性があるので ↑ソースを記載しました通り、JPEG画像への直リンクです。クリックした際に新しく表示されるウィンドウのURL欄にも、末尾が.jpgになっています。 > もうひとつ考えられるのは、403などの数字は、そのファイルがすでに削除または移動してしまい、もうそこの場所にはない時にエラーとして出る事がよくあるので、実際にクリックして画像が表示されるか確かめてみてください。 ↑画像が削除されているわけではありません。 リンクを普通にクリックすれば、新しいウィンドウに画像が表示されるにもかかわらず、 リンクを右クリックして「対象をファイルに保存」を選ぶと403.htmが保存されるのです。 何回繰り返しても同様です。 上記のような設定をApacheで実現する方法を知りたくて、質問させていただきました。

関連するQ&A