web-dev-qa-db-ja.com

ユーザーが自分のアップロードフォルダ内のmp3にアクセスできないようにする

私のサイトでは、mp3プレーヤーがmp3を再生するように設定されています。 mp3はすべてuploadsフォルダにアップロードされています。私は人々がこれらに直接アクセスすることを望みません。つまり、私は人々がmp3をダウンロードできないようにしたくありません。それでもサイト上のmp3プレーヤーで再生可能にしながら、uploadsフォルダー内の.mp3で終わるすべてのファイルへのアクセスを何らかの方法で制限する方法はありますか?

3
Desi

ファイルにダウンロードアクセスを保持するための簡単な方法があります。

1. .htaccessを使用する:

あなたのwp-contentフォルダに.htaccessファイルをアップロードしてください。すでに存在するかどうかを確認してから、このコードをファイルの末尾に追加します。持っていない場合は、新しい空のファイルを作成してこのコードを追加してください。

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourwebsite\.com/ [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(mp3|mp4|mov) [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule .*\.(mp3|mp4|mov)$ http://yourwebsite.com/ [NC]

このかなり奇妙なコードはLinuxでもPHPでもMySQLでもありません - それはApacheです(それが通常サーバーからそれらのウェブサイトを提供することを引き受けるサービスです)。これらはApacheに次のことを実行させるための指示です - 私はこの行ごとに説明します。

このディレクトリで使用するように指示します。

  1. 誰かがyourwebsite.com以外から来た場合
  2. そして彼らは次のいずれかで終わる直接ファイルを要求します(mp3、mp4、movなど)。
  3. そして彼らはこのドメインのWordPressにログインしていません
  4. そのようなファイルへのすべてのリンクを http://yourwebsite.com に直接送ってください。

これらの条件が満たされていない場合は、ファイルを配布してください。

2. Using Real Download Pathを隠す plugin:

このプラグインを使用すると、ダウンロード用にサーバーでホストされているファイルの実際のパスまたは直接のパスを隠し、ファイルを不正なダウンロードから保護することができます。それはまたそれを使用して行われたすべてのダウンロードのログを維持し、他のウェブサイトからあなたのファイルへの直接リンク(ホットリンク)を禁止する機能を提供します。

これであなたはできる:

  1. 他のWebサイトまたは外部リンクからのファイルのホットリンク(直接ダウンロード)を許可または制限します。
  2. あなたのウェブサイトのリンクからの「ダウンロードのみ」を制限する
  3. 個別ダウンロードのログを見る

それは含む複数のファイル拡張子をサポートします。

Zip/pdf/doc/xls/ppt/exe/gif/png/jpg/jpeg/mp3/wav/mpeg/mpg/mpe/mov/avi/xlsx

これがあなたのお役に立つことを願っています。これに関して何か質問があるかどうか私に知らせてください。

これには2つの方法があります。

1)簡単な方法。 mp3ディレクトリにindex.phpという名前の新しいファイルを作成し、それにこのコードを追加します。

<?php
    // Display no content
?>

これがしていることは、ユーザがあなたのディレクトリを閲覧しようとするとき、Webサーバはそれらにindex.phpファイルを提供するでしょう。コードが含まれていないため、結果としてユーザーには空白のWebページが表示されます。

2).htaccessを通してこれを行いますあなたのウェブサイトのルートディレクトリに.htaccessファイルがあるはずです。これを開いて以下のように追加してください

Redirect 403 /mp3/ http://mysite.com

Redirectは/ mp3 /フォルダにアクセスしようとする人を自動的にmysite.comのあなたのメインウェブサイトにリダイレクトします。 403は、要求が禁止されていることをブラウザに通知します。

0
Pat