使用重写规则和PHP脚本来保护某些文件(基于登录会话)


using rewrite rules and php script to protect certain files (based on logged-in session)

我有一个codeigniter网站结构如下:

website.org/files/stuff/1/example.pdf

website.org/www/index.php

所以所有文件(许多是通过CMS上传的)都存储在web根目录上方的文件目录中。但是,您可以直接访问它们,因为有一个服务器别名。

现在,一些文件应该只有在用户登录时才能访问。这意味着如果有人试图访问:

website.org/files/special/2/doc.pdf

它应该首先点击一个php脚本,看看用户是否登录,如果是,加载文件。

有谁能告诉我最简单的方法吗?

将此规则添加到您的.htaccess

RewriteEngine on
RewriteBase /
RewriteRule ^/files/([.*]+)$ /loadfile'.php?file=$1

应该在loadfile.php上创建一个变量$_GET['file'],其值为special/2/doc.pdf。从那里检查用户会话并相应地加载文件。