Web制作の案件で、クライアントの要望に応えるために色々と試している中で、メディアファイルへの直リンクを防ぐ方法を当サイトに実装してみました。記録メモとして、内容を残しておきます。
目次
対象ディレクトリの.htaccessにコードを記述する


Webで先人の知恵を参考にさせていただきながら、AIと対話して以下のコードの.htaccessファイルを「wpcontents/uploads」ディレクトリに新規追加しました。
<IfModule mod_rewrite.c>
RewriteEngine On
# 画像・PDF・WebP 直リンク防止
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png|pdf|webp)$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?work\.mie\-hamaji\.com [NC]
# RewriteCond %{HTTP_REFERER} !^$ ← ブロックを強めたいならこの行は削除またはコメントアウト
RewriteRule \.(gif|jpe?g?|png|pdf|webp)$ - [F,NC,L]
</IfModule>
結果、gif,jpeg,png,pdf,webpファイルの直リンクを防止することに成功。直リンクすると、404エラー表示になることを確認できました。
当初はindex.phpやwp-config.phpと同階層にある.htaccesファイルにコードを追記してみましたが機能しなかったため、下層の「wpcontents/uploads」に.htaccesを新規追加しました。
ディレクトリ内の各種ファイルの役割をもっと理解したい
今回、勉強になったのは.htaccesはApacheサーバーで機能するソフトフェアだということ。WordpressによるWeb制作に関して、まだまだ勉強不足なことが多いです。今回の実装を機に、まずは各ディレクトリ内の各種ファイルを一つ一つ確認しながら、どういう役割を担っているかを改めて理解していきたいと思います。
コメント