通过使用mod_rewrite检查当前PHP会话来保护图像不被直接访问
我正在研究一个问题的解决方案,用户可能会访问存储在服务器根目录下文件夹中的图像(在本例中为PDF文件)。通常,我的应用程序通过PHP脚本和会话验证用户。现在没有发生的是阻止未登录用户访问PDF 我认为我正在寻找的解决方案需要与Apache结合起来。我看到了一个使用RewriteMap&RewriteRule的有趣的解决方案,不过这个示例涉及将其放入PDF目录中的.htaccess文件中。无法使用Apache执行此操作错误:此处不允许重写映射。我相信重写指令需要放在我可以访问的httpd.conf中 因此,我发现的导致“此处不允许重写地图”的示例如下: 重新启动发动机 重写映射auth prg:auth.php 重写规则。*${auth:$1} php只是检查php会话,并在需要时重定向到登录脚本通过使用mod_rewrite检查当前PHP会话来保护图像不被直接访问,php,session,mod-rewrite,authorization,rewritemap,Php,Session,Mod Rewrite,Authorization,Rewritemap,我正在研究一个问题的解决方案,用户可能会访问存储在服务器根目录下文件夹中的图像(在本例中为PDF文件)。通常,我的应用程序通过PHP脚本和会话验证用户。现在没有发生的是阻止未登录用户访问PDF 我认为我正在寻找的解决方案需要与Apache结合起来。我看到了一个使用RewriteMap&RewriteRule的有趣的解决方案,不过这个示例涉及将其放入PDF目录中的.htaccess文件中。无法使用Apache执行此操作错误:此处不允许重写映射。我相信重写指令需要放在我可以访问的httpd.conf
我读到我必须把它放在我的httpd.conf中。如何指定重写映射只发生在包含子目录的特定目录上 1,确保您必须将其直接放在httpd.conf中。例如,在Debian系统上,virtualhost有一个文件virtualhost通常是一个网站 因此,您必须将您的重写映射放在如下目录中:
<Directory /full/path/to/your/pdfs>
RewriteEngine on
...
</Directory>
借用MVC模式,您可以将所有请求重定向到引导文件,然后根据权限,您可以加载请求的文件或默认文件。@Moses-这就是我在这里或多或少要说的。自从发布我的问题以来,我还没有时间研究/测试apache配置,所以我仍然停留在如何正确重定向流量上。