lightsailのWordPressで画像の直リンクを禁止する方法

Lightsailのサーバにssh接続でログインする

LightsailのWordPressのコンソールに接続するために、Lightsailの管理画面から、以下のオレンジのアイコンをクリックします。(このオレンジのアイコンがSSHクイック接続アイコンです。)

ターミナル(=ブラウザベースのSSHクライアントウィンドウ)が開かれます。

サーバについて確認する

.htaccessの場所

LightsailのWordPressでは、「.htaccess」がありません。その代わり、htaccess.confを使って画像の直リンクを防止することが出来ます。htaccess.confの場所は以下の通りです。
/opt/bitnami/apps/wordpress/conf/htaccess.conf
確認する場合は、catとかで出来ます。

$ cat /opt/bitnami/apps/wordpress/conf/htaccess.conf

画像の場所

LightsailのWordPressでは、画像の置き場は以下の通りです。~(チルダ)はホームディレクトリを意味します。
~/apps/wordpress/htdocs/wp-content/uploads/

htaccess.confを修正する

オレンジの部分は直リンクをしてきたサイトのURLに修正した上で、htaccess.confを修正して下さい。設定方針としては、基本的に全てを許可するが、特定のサイトからの画像アクセスを拒否するという方針です。

// htaccess.confの最終行に以下を追加する
$ vim /opt/bitnami/apps/wordpress/conf/htaccess.conf
(iで編集を開始して、以下を追加する)
SetEnvIf Referer “^https://xxxxx⧵.sample.com" ng_url
SetEnvIf Referer “^https://sample.co.jp" ng_url
<Files ~ “⧵.(jpg|jpeg|gif|png|pdf|zip)$">
order allow,deny
allow from all
deny from env=ng_url
</Files>
(escを押して、:wqを押して保存して閉じる)

// apacheを再起動する
$ sudo /opt/bitnami/ctlscript.sh restart apache

注) \ (バックスラッシュ)のところコピーできません。 

htaccess.confの記述について

正規表現を利用しています。
^ (キャレット) ・・・ 文字の始まりを意味します
\.        ・・・ ¥はエスケープシーケンスです。正規表現でピリオドは、任意の1文字という意味を持っています。ドットを意味します。

表示を確認する

直リンクをしているサイトの画像が表示されないことを確認して下さい。キャッシュが残っていると画像が表示されますので、Chromeのシークレットモードを使うなどして画像が表示されないことを確認して下さい。