使用php / apache中的身份验证脚本保护目录中的文件

时间:2010-07-29 08:52:08

标签: php apache authentication

我正在寻找一种告诉Apache的方法,如果有来自某个目录的文件请求,它应该首先运行php脚本来验证用户是否已登录。 我知道我可以将目录放在docroot之外,让php脚本处理身份验证和文件下载,但因为这些是试图打开其他flash文件的flash文件,所以它必须是docroot中的目录,而文件应该是不必通过php脚本发送。 在旧的设置中我们使用的是mod_auth_script(http://sourceforge.net/projects/mod-auth-script/),但由于这是一个相当模糊的apache模块,如果可能的话,我宁愿有一个更常见的解决方案。

1 个答案:

答案 0 :(得分:6)

您可以使用.htaccess和mod_rewrite将请求重定向到php脚本。尝试一些谷歌搜索,你会发现很多例子。

.htaccess内容示例:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ([0-9a-z-_]+)\.swf$ checkForAuth.php?&file=$1 [L]

当有人试图访问* .swf文件时,这将调用checkForAuth.php。在checkForAuth.php中,您需要检查会话,从$ _GET ['file']读取内容,设置正确的标题(flash的内容类型)并输出所请求的SWF文件的内容。