首页 > 解决方案 > 有什么方法可以阻止直接访问 apache 上的文件但允许通过脚本访问它们?

问题描述

如果我在我的服务器目录中输入任何内容的直接路径,我可以在没有登录的情况下查看并下载文件。(例如,我有一个目录 foo,其中有一个文件 bar.jpg。如果我在搜索中输入bar "ip:port/foo/bar.jpg 我可以看到图片而无需浏览我创建的页面)。我知道这将很难访问,但如果它可以发生,它最终会发生。有没有办法允许我的 php 脚本可以访问文件并在网页中显示它们,但在输入时不允许直接访问我的服务器上的内容?我已经尝试过 .htaccess 文件并直接在 apache 中更改服务器配置,我的访问权限如下所示:

<Directory "C:\xampp\htdocs\RootFolder\Login System">
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?Family [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
</Directory>

这里的问题是它随机阻止了我页面中的一些图像,同时允许其他图像通过:

GET http://localhost/Family/IMG_2436.jpg 403 (Forbidden)

我一直在努力尝试让它工作,这样如果有人输入直接链接,他们在通过我的 php 页面访问时会被拒绝访问,只会显示图片或文件。有没有办法做到这一点?ps我使用的是windows基础

标签: apache.htaccessxamppconfig

解决方案


推荐阅读