2011-10-26 41 views
1

我和朋友正在构建允许用户上传图片的网站。我们已经完成了这一切,但我们想知道如何阻止公众能够访问服务器上的文件,但允许成员访问它们。有没有一种Apache mod可以让我们做到这一点,并将其与PHP脚本链接,以检查用户是否已登录?如何使用Apache/PHP保护未登录用户的目录

+0

可以使用'readfile()' - 包装器脚本下载链接,或使用会话ID设置临时文件以通过RewriteCond进行探测。 – mario

+0

[PHP保护文件夹]的可能重复(http://stackoverflow.com/questions/3120174/php-protect-a-folder) – mario

+0

您也可以使用.htaccess文件来保护文件夹 –

回答

3

是的,有一个可以用于认证的apache模块:mod_auth

它支持多个后端,所以你可以让你的应用程序与它共享凭据。

Apache本身也可以在身份验证时扩展,还有其他支持mysql数据库的模块,它被称为mod_auth_mysql,其中存在多个变体。对于Apache 2.2,更好的选择可能是mod_authn_dbd,因为它为多种风格的SQL数据库提供了一个通用接口。以及支持ldap:mod_authnz_ldap

另一种替代方法是使用PHP进行身份验证,然后命令服务器提供该文件。这通常被称为或mod_xsendfile,这是第三方模块。

如果你正在寻找一个PHP的解决方案,那么谈论它的一个问题是How to password protect files (images, video, zip) dynamically from public and allow access to members only?