検索結果に表示させずに特典ファイルなどをダウンロードさせる方法

※当サイトにはプロモーションが含まれています。

ユーザーがLINEやメール登録をしてくれた時、または感想を送ってくれたりした時など、下記のような流れで特典ファイルを配ることがあると思います。

よく見かけるマーケティング手法

しかし、何も対策をせずに、配布するファイルをサーバーにアップロードすると、Googleの検索結果に表示されてしまう可能性があります。

下記は、あるサイトで、PDFファイルに絞って検索した結果です。

site:ドメイン名 filetype:拡張子 キーワードの検索結果

にゃのらいとにゃのらいと

PDFファイルは、プレゼントで配っているから検索結果に表示されては困るにゃ

今回、phpファイルを設置して、特典ファイルなどをGoogleに検索されないようにする方法について解説します。

なお、ワードプレス(WordPress)で解説していますが、それ以外のサイトでも応用可能です。

単純に、robots.txtファイルを設置して、検索結果から除外する方法についてはこちらをご参照ください。

検索結果に表示させずに特典ファイルなどをダウンロードさせる方法

構成イメージとしては、下記のような感じになります。

download.phpを使った構成

ファイルをダウンロードする時は、download.phpにアクセスさせて、そこからファイルをダウンロードさせるようにします。

①ディレクトリ構成

ファイルやフォルダの構成は下記のようになります。

/home/(ユーザー名)
 ├── public_html (または www、htdocs など)
 │ ├── wp-content
 │ ├── wp-includes
 │ ├── wp-admin
 │ ├── module(※新規作成)
 │ │ └── download.php(※新規作成)
 │ └── .htaccess
 ├── dwload(※新規作成)
 │ ├── file1.pdf
 │ ├── file2.xls
 │ └── file3.psd

ワードプレスがインストールされている同じ階層に、「module」フォルダを作成し、その中にdownload.phpを作成します。

また、ダウンロードしてもらうファイルを置く場所「dwload」フォルダも作成します。

なお、ワードプレスのフォルダ構成で説明していますが、その他のサイトでも基本的な構成は同じです。

②download.phpの作成

download.phpを作成します。

<?php
// 許可されたファイル拡張子のリスト
$allowed_extensions = ['pdf', 'xls', 'xlsx', 'psd', 'zip'];

// ダウンロードするファイルの名前を取得します
if (!isset($_GET['file'])) {
die('ファイルが指定されていません');
}

$file_name = basename($_GET['file']);
$file_path = '/home/(ユーザー名)/dwload/' . $file_name;

// ファイルの拡張子を確認します
$file_extension = pathinfo($file_path, PATHINFO_EXTENSION);
if (!in_array($file_extension, $allowed_extensions)) {
die('この種類のファイルは許可されていません');
}

// ファイルが存在するか確認します
if (!file_exists($file_path)) {
die('ファイルが存在しません');
}

// ファイル情報を取得します
$file_size = filesize($file_path);

// 適切なヘッダーを設定します
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $file_name . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . $file_size);

// ファイルを読み込んで送信します
readfile($file_path);
exit;
?>

なお、$file_path = ‘/home/(ユーザー名)/dwload/’ . $file_name;

にある(ユーザー名)の箇所は、ご自身の状況にあわせて修正をしてください。

これは、どの場所に、ダウンロードするファイルがあるかを指定しています。

修正が完了したら、download.phpとして保存します。

次に、wp-contentと同じ階層に「moduleフォルダ」を作成します。

wp-contentと同じ階層にmoduleフォルダを作成

そして、作成したmoduleフォルダ内に、download.phpをアップロードしましょう。

③保護したいコンテンツのアップロード

Googleに検索させない、ユーザーからも直接フォルダ内を見ることができないようにする為、保護したいコンテンツをワードプレスがインストールされている階層より上のディレクトリに保存します。

今回は、「/home/(ユーザー名)」の場所に、dwloadフォルダを新規作成します。

/home/(ユーザー名)の場所に、dwloadフォルダを新規作成

保護したいコンテンツを、作成したdwloadフォルダ内にアップロードします。

④ダウンロードリンクの設置

ダウンロードリンクは、以下の形式になります。

https://(あなたのドメイン)/module/download.php?file=(ファイル名).pdf

?file=(ファイル名).pdfとありますが、?はリクエリストリングの開始をあらわすものです。

この後に、パラメータを記載することで、設定したパラメータの情報を渡します。

例えば、ファイル名が、secret.pdfというファイル名なら、「?file=secret.pdf」というのを、download.php?の後ろに記載します。

WEBサイトの場合は、ボタンとして設置することが多いと思うので、以下の様な感じで記載します。

<a href="https://yourwebsite.com/module/download.php?file=excel.xls" class="btn btn-primary">Download Excel File</a>
<a href="https://yourwebsite.com/module/download.php?file=your-file.pdf" class="btn btn-primary">Download PDF</a>
<a href="https://yourwebsite.com/module/download.php?file=photoshop.psd" class="btn btn-primary">Download Photoshop File</a>

最後に、URL(ボタン)をクリックするなどして、実際にダウンロードできるかを試してみましょう。

補足:ダウンロードできない場合

ダウンロードするファイル名や、フォルダの構成などが間違っていないけど、ダウンロードできないことがあるかもしれません。

これは、.htaccessファイルの設定により、module フォルダへのアクセスが禁止されている可能性があります。

その場合は、.htaccessファイルを編集して、module フォルダへのアクセスを許可する必要があります。

下記は、module フォルダへのアクセスを許可する参考コードです。

※Directoryの箇所を変更する必要があります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# moduleフォルダへのアクセスを許可する
<Directory /home/username/public_html/module>
Order allow,deny
Allow from all
</Directory>

ただ、ワードプレスの.htaccessファイルは、インストールしたプラグインなどの設定も書き込まれることがあります。

その為、もし編集される場合はオリジナルファイルを保存しておくのはもちろんですが、よくわからない場合は影響範囲が大きいので編集しないでください。

失敗すると、WEBサイト及び、管理画面にブラウザからはアクセス不能になるためです。

まとめ

最後にポイントをまとめておきます。

  1. dwload フォルダに配布ファイルを保存し、Webアクセスから保護します。
  2. download.php を module フォルダに設置し、ファイルのダウンロードを管理します。
  3. module フォルダへのアクセスが禁止されている場合のみ、htaccess ファイルで module フォルダへのアクセスを許可します。

この構成により、Google検索に引っかからないようにして、ファイルを配布することができます。

楽天市場の検索結果

独習PHP 第4版 [ 山田 祥寛 ]
独習PHP 第4版 [ 山田 祥寛 ] 3,740円(税込)【送料込】

楽天ブックス

山田 祥寛 翔泳社ドクシュウピーエイチピー ダイヨンハン ヤマダ ヨシヒロ 発行年月:2021年06月14日 予約締切日:2021年04月15日 ページ数:664p サイズ:単行本 ISBN:9784798168494 山田祥寛(ヤマダヨシヒロ) 静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年

気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ]
気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ] 2,970円(税込)【送料込】

楽天ブックス

谷藤賢一 徳丸 浩(協力) リックテレコムキヅケバプロナミピーエイチピーカイテイバンゼロカラツクレルヒトニナル タニフジケンイチ トクマルヒロシ 発行年月:2017年02月18日 予約締切日:2017年02月17日 ページ数:328p サイズ:単行本 ISBN:9784865940657 谷藤賢一(タニフジケンイチ) 1981年にプログラ

PHP本格入門[上] 〜プログラミングとオブジェクト指向の基礎からデータベース連
PHP本格入門[上] 〜プログラミングとオブジェクト指向の基礎からデータベース連 3,938円(税込)【送料込】

楽天Kobo電子書籍ストア

<p><strong>(概要)</strong><br /> Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。<br /> 「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」<br /> 「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」<

PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連
PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連 3,938円(税込)【送料込】

楽天ブックス

大家正登 技術評論社ピーエイチピーホンカクニュウモン ジョウ プログラミングトオブジェクトシコウノキソカラデータベースレンケイマデ オオイエマサト 発行年月:2020年08月03日 予約締切日:2020年06月18日 ページ数:688p サイズ:単行本 ISBN:9784297114688 大家正登(オオイエマサト) 1979年、佐賀県生

PHP7+MariaDB/MySQLマスターブック【電子書籍】[ 永田 順伸 ]
PHP7+MariaDB/MySQLマスターブック【電子書籍】[ 永田 順伸 ] 3,124円(税込)【送料込】

楽天Kobo電子書籍ストア

<p>**※この商品は固定レイアウト型の電子書籍です。</p> <p>※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。</p> <p>※お使いの端末で無料サンプルをお試しいただいた上でのご購入をお願いいたします。</p> <p>※

楽天ウェブサービスセンター