通过使用mod_rewrite检查当前的PHP会话来保护图像不被直接访问

时间:2012-03-23 22:35:02

标签: php session mod-rewrite authorization rewritemap

我正在研究用户可能访问存储在服务器根目录下的文件夹中的图像(在本例中为PDF文件)的问题的解决方案。通常,我的应用程序通过PHP脚本和会话验证用户。现在没有发生的事情是阻止未登录的用户可能访问PDF。

我正在寻找的解决方案(我认为)需要与Apache联系在一起。我看到了一个有趣的解决方案,使用RewriteMap& RewriteRule,但是这个例子涉及将它放在PDF目录中的.htaccess文件中。使用Apache无法做到这一点(错误:此处不允许使用RewriteMap)。我相信重写指令需要进入我可以访问的httpd.conf中。

所以我找到的例子(导致'这里不允许重写地图')在这里: RewriteEngine On RewriteMap auth prg:auth.php RewriteRule(。*)$ {auth:$ 1}

auth.php只检查PHP会话并根据需要重定向到登录脚本。

我正在读,我必须把它放在我的httpd.conf中。我如何指定RewriteMap只应出现在特定目录(包括子目录)上?

1 个答案:

答案 0 :(得分:0)

1,确保你必须直接把它放在httpd.conf中。例如,在Debian系统上,virtualhost有1个文件(虚拟主机通常是一个网站) 所以,你必须把你的rewriteMap放在这样的“目录”中:

<Directory /full/path/to/your/pdfs>
    RewriteEngine on
    ...
</Directory>