限制浏览器访问目录文件

时间:2011-05-18 20:50:36

标签: php .htaccess url codeigniter

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

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

我已经在我的.htaccess文件中添加了选项 - 索引但是没有做任何事情

如果它有用,我的网站是使用codeigniter构建的,那么PHP解决方案会很棒,不过我会接受你的建议!

谢谢你, 添

3 个答案:

答案 0 :(得分:2)

您可以为此目的编写控制器。

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

在controller __contruct()中;编写用户身份验证代码,这就是全部!

因此,您将通过控制器调用这些文件,例如http://www.site.com/images/1314.png

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

Options +FollowSymlinks -MultiViews
RewriteEngine on

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

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