直リンクを禁止・防止する方法
今回は、電子媒体などをネットで販売する際などに役立つ内容となります。直リンクを簡単に禁止・防止する方法となります。具体的には.htaccessで簡単に直リンクの禁止・防止を制御することができます。
せっかくなので、何パターンか記載します。
1.自分のURL以外からの直接リンクを禁止
自分のウェブサイト以外からの自サイトの画像やダウンロードデータなどへの直接リンクを禁止し、自分のURL以外での画像の表示やデータのダウンロードができないように.htaccessへ設定する方法となります。
.htaccessへの設定
1行目で環境変数(SetEnvIf)で自社サイトのURLを設定し、3行目で一度すべてのアクセスを禁止、4行目で自社サイトからのアクセスのみ許容するように設定します。
1 2 3 4 | SetEnvIf Referer "^https://www\.example\.com" mysite Order Deny,Allow Deny from all Allow from env=mysite |
https://の前には「^」を必ずつけます。これは正規表現パターンの先頭という事を表しています。また「.」の前に「\(バックスラッシュ)」を必ず入力します。こちらはエスケープ文字です。
URLが1つに集約されていない(https://、http://、wwwあり、wwwなしのリダイレクト設定)場合には、該当のURL全て記載する必要があります。その場合には、以下の様なイメージになります。
1 2 3 4 5 6 7 | SetEnvIf Referer "^https://www\.example\.com" mysite SetEnvIf Referer "^http://www\.example\.com" mysite SetEnvIf Referer "^https://example\.com" mysite SetEnvIf Referer "^http://example\.com" mysite Order Deny,Allow Deny from all Allow from env=mysite |
直リンク禁止したいサーバー上のディレクトリへ本.htaccessをアップロード
直リンクを禁止したい電子媒体(pdfやzipファイル等)や画像があるディレクトリ内に本.htaccessをアップロードします。これだけで、.htaccessがあるディレクトリ内は、全て直リンク禁止の状態となります。
その他
電子媒体のダウンロードサイトのような場合であれば、本方法で自サイト以外からの直リンクを完全に禁止する事ができます。一方で、不審なサイトからの直リンクを禁止したいといった場合においては、他からのアクセスは禁止できますが、不審でないサイトの直リンクも拒否してしまいます。そのため、Googleなどの検索エンジンのbotsやクローラーなどのアクセスも拒否されますので、Googleなどの検索エンジンの検索結果で画像が表示されないといったことや、OGP画像(SNS上で共有される画像)も使えませんので、SNS上に画像が表示されないということが起こり得ます。Googleなどの検索エンジンのサイト評価を下げないために不審なサイトからの直リンクを防ぐという目的であるならば、本末転倒ですので、このような目的であるならば不審でないサイトのアクセスは許容するといった設定も入れる必要があります。
2.指定したURLからの直リンクを許容(それ以外は禁止)
前述に記載した通り、不審なサイトからの直リンクを防ぐという目的であるならば、前述の設定ではGoogleなどの検索エンジンのbotsやクローラーからの直リンク、各種SNSからのリンクもアクセス拒否してしまいますので、各種検索エンジンやSNSなどからの直リンクだけは許容するように設定する必要があります。。以下は例です。
.htaccessへの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SetEnvIf Referer "^https://www\.example\.com" ok_url SetEnvIf Referer "google" ok_url SetEnvIf Referer "bing" ok_url SetEnvIf Referer "yahoo" ok_url SetEnvIf User-Agent "^Googlebot.*$" ok_url SetEnvIf User-Agent "Slurp" ok_url SetEnvIf User-Agent "msnbot" ok_url SetEnvIf User-Agent "^Twitterbot.*$" ok_url SetEnvIf User-Agent "^facebookexternalhit.*$" ok_url SetEnvIf User-Agent "^facebookplatform.*$" ok_url <Files ~ "\.(jpg|jpeg|gif|png|pdf|zip)$"> order deny,allow deny from all allow from env=ok_url </Files> |
直リンク禁止したいサーバー上のディレクトリへ本.htaccessをアップロード
直リンクを禁止したい画像や動画ファイルがあるディレクトリ内に本.htaccessをアップロードします。
その他
.htaccessで不審でないサイトからの直リンクを許容する設定を追加していく形になります。(ホワイトリスト)
3.指定したURLからの直リンクを禁止(それ以外は許容)
前述は「指定したURLからの直リンクを許容」する設定でしたが、目的が不審なサイトからの直リンクを禁止する事であるならば、許容(allow)する設定ではなく、指定したURLからの直リンクの禁止(deny)の設定もできます。
.htaccessへの設定
1 2 3 4 5 6 7 8 | SetEnvIf Referer "^https://www\.example\.com" ng_url SetEnvIf Referer "^https://example\.jp" ng_url SetEnvIf Referer "^https?://([^/]*.)?example\.net" ng_url <Files ~ "\.(jpg|jpeg|gif|png|pdf|zip)$"> order allow,deny allow from all deny from env=ng_url </Files> |
3行目は、悪質なサイトの場合サブドメインを複数使ってアクセスされる場合がありますので、悪質なサイトのサブドメインを全て拒否する設定を入れています。
直リンク禁止したいサーバー上のディレクトリへ本.htaccessをアップロード
前述と同様に、直リンクを禁止したい画像や動画ファイルがあるディレクトリ内に本.htaccessをアップロードします。
まとめ
ダウンロードサイトの場合には、自サイト以外からのアクセスを全て拒否する設定を入れれば良いですが、Googleなどの検索エンジンのサイト評価を下げないため、不審なサイトからの直リンクを防ぐ目的であるならば、当該URLを指定して拒否(Deny)や許容(Allow)の設定を入れる必要があります。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル