Apacheを使用している場合は、.htaccess ファイルで書き換え規則を使用する必要があります。他の HTTP サーバー ブランドを使用している場合は、ここで説明するのとほぼ同じロジックを使用する必要があるため、その場合は HTTP サーバーのマニュアルを確認してください。
説明:
www.me.com/index.php と入力すると、PHP システムは、echo
使用するコマンドによって生成されたコンテンツをコード内に配置します。
www.me.com/myfiles/iou345yo13i2u4ybo34ybu3/passwords.txt と入力すると、サーバーはファイルの内容をクライアント ブラウザーに送信します。クライアント ブラウザーは、ファイルの拡張子に応じて、ファイルとしてダウンロードするか、ページとして表示するかを尋ねます。
.htaccess ファイルで次のようにすると、次のようになります。
RewriteEngine On
RewriteRule ^myfiles/([^/]*)^.pdf$ /index.php?file=$1& [L]
# avoit direct access to your server directories file listing
Options All -Indexes
www.me.com/myfiles/file123.pdf と入力しますが、サーバーは「file」パラメーターのコンテンツとしてファイル名を使用して index.php を実行し、コード内でセッションを確認して、ユーザーがこのファイルをダウンロードする権限を持っているかどうかを確認してください。
ユーザーが権限を持っている場合は、 readfile() 関数を使用してファイルをユーザーに送信しますが、ユーザーはそのファイルがどこから来たのか (つまり、実際のパス) を認識しません。
ここでこれを行う方法を見てください:
PHP - ファイルをユーザーに送信