5

ディレクトリ内のファイルへの直接アクセスを制限しようとしています。たとえば、website.com/files/example.flv があります。

そのため、ユーザーが URL のファイルに直接アクセスした場合、ホームページにリダイレクトされるようにしたいと考えています。

私はhtaccessを使用して次のことを試しました

deny from all

しかし、うまく機能していません。PHPを使用してこれを行う方法はありますか?ユーザーがURLのファイルに直接アクセスすると、リダイレクトされます。

したがって、ユーザーが URL のファイル リンクに移動すると、ホームページに送信されます。これはhtaccessを使用してのみ行うことができます

4

2 に答える 2

6

はい。Web からアクセスできないディレクトリにファイルを配置する必要があります。次に、php スクリプトを指す .htaccess ファイルを public_html/files/ フォルダーに作成する必要があります。

このようなもの (注: コードはテストされていません):

構造:

  • 根/
    • 実ファイル/
    • public_html/
      • ファイル/
        • .htaccess
      • filehandler.php

.htaccess:

RewriteEngine on
RewriteRule ^/files/(.+)$ filehandler.php?stuff=$1 [QSA]

ファイルハンドラ.php:

header('Location: /');

もちろん、ファイルにアクセスしたいときにファイルにアクセスできるようにしたいでしょう。これは、filehandler.php で、ユーザーがファイルを表示できるかどうかを確認し、次のようなものを返すことで実行できます。

header('Content-type: application/octet-stream');
header('Content-Disposition: inline; filename="'.basename(urlencode($file['name'])).'"');
readfile($dir.basename($file['filename']));
exit;
于 2013-10-28T21:41:11.017 に答える