Re: ファイルへの直接アクセスを禁止するには?

2013年10月16日 at 10:08

ああ、確認したらファイル保存場所がデフォルトのときはダウンロードの強制ではなくリダイレクトになるようになってました。なんでだろ…

とりあえず、下記コードでオーバーライドすると元ファイルURLは見えなくなります。

/controllers/download_file.php に設置

<?php

defined('C5_EXECUTE') or die("Access Denied.");
class DownloadFileController extends Concrete5_Controller_DownloadFile {

protected function download($file, $rcID=NULL) {
$filename = $file->getFilename();
$file->trackDownload($rcID);
$ci = Loader::helper('file');
$ci->forceDownload($file->getPath());
}

}

タグ:

Re: Re: ファイルへの直接アクセスを禁止するには?

2013年10月16日 at 18:20
お話の通り、「download_file.php」のオーバーライドで解決しました。

ただ、「標準のファイル保存場所」の変更は、キャッシュなどは素直に移動してくれるのですが、ファイルマネージャからアクセスできなくなったり、少し変な挙動を示しました。
なので変更するのはやめて、.htaccess で直接アクセスを拒否してみました。
 ----- .htaccess -----
 Deny from all
 --------------------

これで安心です。ありがとうございました。