LAMP - 使目录只能访问某些网页

时间:2015-11-17 12:24:34

标签: html apache .htaccess lamp

我正在修补运行Apache2的LAMP服务器上的网页,并想知道是否可以只为您的网页而不是从外部访问目录?

示例方案:

要保护的目录: dir1 包含图片(jpg,png)

我自己的网页: mypage.html dir1

调用图片

我的网站: www.myweb.com 包含 dir1 mypage.html

目前,网站内的文件可以通过 www.myweb.com/dir1/somefile.jpg 或致电 mypage.html

进行访问

我希望只能通过调用mypage.html

来访问它

我尝试了以下内容:

  • 修改.htaccess以禁止访问图像类型

    #define TRUE 1
    /* declare cmd, params, envp, stat, prompt, readcmd */ 
    
    while (TRUE) { /* repeat forever */ 
        prompt(); /* display prompt */ 
        readcmd(cmd, params); /* read input from terminal*/ 
        if (fork() != 0) { /* fork child process */ 
            /* parent code */ 
            waitpid(-1, &stat, 0); /* wait for child */ 
            } else { 
            /* child code */ 
            execve(cmd, params, envp); /* execute command */ 
            } 
        } 
    }
    

(不起作用,因为mypage.html也无法访问它)

  • 使用以下命令修改apache2 conf文件:

    <files "*.jpg">
      deny from all
    </files>
    

    (这实际上是半工作的,因为它允许我写入目录但不读取,也许这可以修改为允许来自内部网页的请求通过?)

我想总结一下,有没有办法让Apache2只接受访问目录的请求,如果它是您选择的某个网址?

提前致谢。

1 个答案:

答案 0 :(得分:0)

所以,我已经决定到目前为止我采取的方法真的没有削减它,发现你实际上可以调用一个php函数

<img src='somefile.php?query=xxx' alt='pic'>

以及somefile.php中的内容,它包含从上面的查询创建的img文件名。

echo file_get_contents($imgresource);

通过从php脚本提供图像并阻止在没有正确的凭据,会话,cookie和IP阻塞的情况下调用此PHP脚本,有一些安全设置。

所以我猜它并没有真正回答完全阻止只访问某些URL的问题,但它的工作原理是无法在外部访问,因为我已经隐藏了下面的目录(或上面的?) Web根目录,它不能从URL调用,只能从内部脚本调用。