クローズドなサイト内のコンテンツへのアクセス禁止
***例によって、備忘録***
ワードプレスなどでは、.htaccess内で以下の記述が無いと、画像、PDF、その他直リンクを許してしまう。
会員制サイト用のプラグインを用いていても、完全には防げない。
基本的にプラグインでは対処出来ない。
理由はファイル(画像、PDF、その他)が存在するから。
ファイルが存在しない場合や固定ページ・投稿ページ・他はWordpressの/index.phpに処理が渡るが、画像ファイルが存在する場合はWordpressに処理を渡さずに画像、PDF、その他を表示して終わってしまう。
つまり、ワードプレスが管理するページは問題無いが、画像、PDF、その他のファイルを、直接URL指定されてアクセスされるとお手上げなのである。
従って、Apache側で動く.htaccessを使う。
◇直リンクを禁止する5行のコード
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.○○○.jp/ [NC]
RewriteRule ^(.*)\.(jpg|png)$ http://www.○○○.jp/○△◇/ [R=301,L]
◇解説
RewriteEngine On
RewriteEngine をOnにします。
RewriteBase /
リライトベースを設定します。このスラッシュだけの場合http://www.○○○.jp/下となります。
RewriteCond %{HTTP_REFERER} !^$
リファラーが無い場合はアクセスを許可します。
上にある様に、リファラー無しの場合も拒否したければこの行は消します。
RewriteCond %{HTTP_REFERER} !^http://www.○○○.jp/ [NC]
URLにhttp://www.○○○.jp/を含むページから参照された場合は表示を許可します。
後ろのNCは大文字小文字を区別せず判別します。
RewriteRule ^(.*)\.(jpg|png)$ http://www.○○○.jp/dlink/ [R=301,L]
リライトルールの設定、jpgとpngファイルへアクセスがあった場合、
http://www.○○○.jp/○△◇/へリダイレクトします。
R=301は301リダイレクトを行い、Lはその場で判定を終了させます。
Lは付けた方が良さそうです。
後は自分のサイトに合わせて編集して下さい。



