この記事のポイント
- 外部からの直リンクにて、WordPress記事画像が表示されないよう .htaccessを設定したよ。
- 登録ユーザー専用サイトの画像ファイルが”直リンク”で表示出来てしまうのを禁止できるよ。
- パクリサイトの対策方法の方法としても使えるよ。
登録ユーザーのみ サイトでも、画像は見えてしまう。
登録ユーザー専用サイトをWordPressで作った場合でも、アクセス制御は「themeディレクトリ」より奥の階層となります。これはWordPressの仕様みたいです。
写真データの「uploads」ディレクトリは、そんなために誰でもアクセスできます。URLアドレスがわかれ誰でも写真を見れます。これを防ぐために、直リンクのアクセスを禁止する対策をしました。
これは直リンクを拒否するので、パクリサイトへのささやかな対策ということにもなります。倍返しにはなりませんが。
そうそう登録ユーザー専用サイトを構築は、ログインしたユーザーだけにサイトの閲覧を許可するWordPressプラグイン”MW Auth”を活用しました。
.htaccess でアクセス制御して、外部からの画像アクセスを禁止する
.htaccessにてbasic認証を設定して、サイト全体をアクセス制御する方法が一般的なのかもと思います。
アクセス制限ベーシック認証~パスワードでページを守ろう~ – .htaccessの小技編 – futomi’s CGI Cafe
ただし今回のケースには難点があります。basic認証の後に、WordPressのユーザーログインも必要です。、2回パスワードを入れることになります。
結果として”めんどくさい”仕様になります。そこで違う方法がないかな?と探し、直リンクのアクセスを禁止する方法を見つけました。
こちらのサイトさんの説明がわかりやすく.htaccessの設定を行えました。感謝です。
.htaccessを作ってサーバにアップ
上の記事では、2種類の設定コードが紹介されています。ものくろはサクラインターネット スタンダード ブランを使っています。1番目に紹介されていた設定コードで、アクセス制限がオッケーでした。
例として、http://example.jp/wordpress/ にWordPressをインストールしていると、下のコードになります。サブディレクトリの指示は不要です。『.』は正規表現のメタ文字(ワイルドカード)をエスケープするために『\.』となります。
[code]
SetEnvIf Referer "^http://example\.jp" ShowOK
order deny,allow
deny from all
allow from env=ShowOK
[/code]
テキストエディターにてコードを「1.htaccess」の名前でファイルを保存し、FTPでサーバーにアップします。
wp-content下「uploads」ディレクトリに、アップして、FTPソフトから「.htaccess」にリネームします。ここでは不可視属性ファイルを表示するようにFTPソフトを設定してください。
Macを使っているものくろ は FTPソフトに「Transmit」を愛用しています。直感的にファイルを管理しやすく、さらに転送速度の速さが素晴らしいからです。ファイル操作にストレスを感じないから仕事が捗ります。
不可視属性を表示するのも、Transmitなら「表示」メニューの下にあり、簡単に切り替えが出来ます。ちょっとした使い勝手の良さが、作業のスピードを大きく変えるのですよね。
サクラインターネットのサイトで、動作確認 OK
WordPressに登録してあるユーザーでログインし、写真を開いたのが下のウィンドウです。この確認作業では、ブラウザーのシークレットモードを使って、キャッシュが残らないようにするのがポイントです。このことに気づかず、深い落とし穴に落ちて1時間半を無駄にしました。。
上のURLをコピーして、直接 貼付けたのが下のウィンドウです。403 Forbidden を返してアクセス拒否となりました。成功です。
ものくろ はこう思った
WordPressプラグイン”MW Auth”を使って、登録ユーザーのみのサイトを作りました。ただし、そのままでは投稿した画像を直リンクすれば、だれでも見る事が出来ます。
ちょっとマズいので、.htaccess を設定し直リンクからのアクセスを禁止しました。このテクニックはパクリサイトからの画像直リンクにも有効です。倍返しにはなりませんが画像のトラフィックを少なくしたりできます。
.htaccessのアクセス制御は難しいので、参考になる情報をまとめてもらっていた事で、助かりました。
動作確認をやった時に落とし穴に”すとーん”と落ちて、1時間半ほど路頭に迷っていましたけど。この失敗については次にまとめます。
いいね!で応援お願いします!