【问题标题】:Restrict browser access to directory files限制浏览器访问目录文件
【发布时间】:2011-08-28 09:28:32
【问题描述】:

在我的网站中,我想限制查看存储在名为“/content”的目录中的某些文件,这样只有登录的用户才能查看这些文件

就目前而言,任何在浏览器中输入 xxxxxxx.com/content/4dc32b1c0a630.png 的人都可以看到此图像文件

我已将 Options -Indexes 添加到我的 .htaccess 文件中,但没有任何作用

如果有帮助,我的网站是使用 codeigniter 构建的,那么 PHP 解决方案会很棒,尽管我会接受你可能有的任何建议!

谢谢你, 蒂姆

【问题讨论】:

    标签: php .htaccess url codeigniter


    【解决方案1】:

    您可以为此编写一个控制器。

    在我的一个项目中,我只为登录用户完成了调整大小的图片控制器。它基于 timthumb 脚本http://code.google.com/p/timthumb/

    在控制器中 __construct();写用户认证代码就行了!

    所以你会通过控制器调用这些文件,比如http://www.site.com/images/1314.png

    【讨论】:

    • 谢谢,您能进一步解释一下如何在构造函数中“编写用户身份验证”吗?
    【解决方案2】:

    使用 mod_rewrite 将对 /content 中任何内容的任何访问重写为 PHP 脚本,该脚本将验证用户,然后直接或通过 mod_xsendfile 提供文件。

    【讨论】:

      【解决方案3】:

      将这些行放在您的根 .htacess 文件中,以阻止未经身份验证的用户访问 content/4dc32b1c0a630.png

      Options +FollowSymlinks -MultiViews
      RewriteEngine on
      
      RewriteCond %{LA-U:REMOTE_USER} ^$ 
      RewriteRule ^content/4dc32b1c0a630\.png/?$ - [R=403,L]
      

      但是,我建议您使用通配符(如果可能的话)来匹配上面被阻止的文件,而不是列出每个单独的文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        相关资源
        最近更新 更多