Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过使用mod_rewrite检查当前PHP会话来保护图像不被直接访问_Php_Session_Mod Rewrite_Authorization_Rewritemap - Fatal编程技术网

通过使用mod_rewrite检查当前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

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

我认为我正在寻找的解决方案需要与Apache结合起来。我看到了一个使用RewriteMap&RewriteRule的有趣的解决方案,不过这个示例涉及将其放入PDF目录中的.htaccess文件中。无法使用Apache执行此操作错误:此处不允许重写映射。我相信重写指令需要放在我可以访问的httpd.conf中

因此,我发现的导致“此处不允许重写地图”的示例如下: 重新启动发动机 重写映射auth prg:auth.php 重写规则。*${auth:$1}

php只是检查php会话,并在需要时重定向到登录脚本


我读到我必须把它放在我的httpd.conf中。如何指定重写映射只发生在包含子目录的特定目录上

1,确保您必须将其直接放在httpd.conf中。例如,在Debian系统上,virtualhost有一个文件virtualhost通常是一个网站 因此,您必须将您的重写映射放在如下目录中:

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

借用MVC模式,您可以将所有请求重定向到引导文件,然后根据权限,您可以加载请求的文件或默认文件。@Moses-这就是我在这里或多或少要说的。自从发布我的问题以来,我还没有时间研究/测试apache配置,所以我仍然停留在如何正确重定向流量上。