現在、webroot 内のフォルダーを使用して、ログインが必要なビュー (通常の html 画像ヘルパーを使用) に読み込んでいる画像とビデオを保存しています。
外部の訪問者が単にsite.com/img/photos/1.jpg
URL を実行して画像にアクセスできないようにするにはどうすればよいですか? 私が理解していることから、メディアビューを使用して適切なビュー内に画像をレンダリングすることは実際にはできず、htaccess操作による解決策があるかどうかわかりません。
これのベストプラクティスはどれですか? おそらく、webroot 以外のフォルダーを選択するのが最善でしょうか (ただし、ファイルの保存部分が難しくなります)。
ポンチャが示唆したように、メインの.htaccessファイルをこれに編集してみました
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !localhost
RewriteCond %{REQUEST_URI} ^app/webroot/img/
RewriteRule .* / [L,F]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
しかし、リライトベースラインはサイト全体へのアクセスを禁止しているようで、それなしではimgアクセスに変化はないようです。
編集 2: webroot 内の htaccess の編集:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
# this RewriteCond is needed to avoid rewrite loops
RewriteCond %{REQUEST_URI} !^/app/webroot/
RewriteRule (.*) app/webroot/$1 [L,R]
RewriteCond %{HTTP_REFERER} !127.0.0.1
RewriteCond %{REQUEST_URI} ^/app/webroot/img/
RewriteRule .* - [L,F]
</IfModule>