在php或apache中制作“文件网关”


Making a "file gateway" in php or apache

>我不确定我是否使用了正确的术语,所以从一开始就很抱歉,请耐心等待

正在尝试实现的是从我的"www"文件夹中的文件夹X对我的文件进行一种保护,我能够创建我的"php检查器",它将检查我是否有查看权限,如果文件存在,我重定向到该文件(我正在使用symfony2)。我试图读取文件内容并将其归还 - 但它使 CPU 发疯,所以这是一个糟糕的解决方案。注意:我不确定"文件网关"是否正确,我正在做一些研究,人们告诉我创建一个,经过更多的研究和这些人的缺席,我决定"我正在做什么"应该是它

除此之外,我能够限制对文件的直接访问,现在我想打开它只是为了重定向并且只能从同一个"服务器"打开它,或者如果您有其他一些想法。

不确定这是最好的解决方案,如果有人可以提出更好的建议 - 漂亮请告诉我。我的大部分研究都失败了,因为我谷歌的任何事情都会导致关于如何删除 403 或将其恢复的回复 - 没有什么比这更复杂的了。

目前我的 apache 配置

DocumentRoot /var/www/html/web
    <Directory /var/www/html/web>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        DirectoryIndex app_dev.php app.php index.php index.html
    <IfModule mod_rewrite.c>
         RewriteEngine On
         RewriteCond %{REQUEST_FILENAME} !-f
         RewriteRule ^(.*)$ app_dev.php [QSA,L]
    </IfModule>
    </Directory>

我相信您应该将所有受限制的文件隐藏在/www/(公共)文件夹/文件后面。

在受限制的公用文件夹中,放置一个将处理文件请求的 php 文件。它可以从IP地址列表中进行检查,如果获得批准,则获取文件,使用base64流式传输,将其复制到具有特殊文件名的公共文件夹中等。

如果受限制的文件是 php 文件,那么如果授予访问权限,您可以简单地"包含"它们。