序
博主新入Drupal阵营,奋战了一个余月,总算对Drupal开发有个把握了。
最初学了怎样使用的时候,觉得很好上手啊,自认为作为一个资深码农,对框架的逻辑,代码理解很到位,夸下海口,两个星期可以拿下。谁知道学习曲线还是如是说的陡峭。
不过总算熬过来,从不知道如何入手,到现在驾轻就熟,还是有点成绩。也有必要总结总结,朋友Cameron的Drupal指南写了很多,也写得很好,不过未经他允许,我不好公开,而我在这里写自己的总结,也希望能帮助到出入Drupal的迷途小羔羊。
Drupal 7的private file system其实是通过.htaccess和drupal对system/file路径的处理来实现的。
例子如下:
1. 在admin/config/media/file-system 设置private file system path,保存后,在default download method中就可以选择Private local files served by drupal了。这样就会在设定的path中生成一个.htaccess文件,里面有deny from all。如果这个.htaccess文件deny from all不起效,说明apache的conf文件没有 AllowOverride All,这个曾困扰了我好一阵子。。
2. 自己写一个hook,实现hook_download(),检查权限,如果非法访问,返回-1。file_download()会检查所有实现上面hook的模块,任何一个模块返回-1都会access denied。
这里面写虽然简短,但是基本就是实现的框架了,如果大家不明白,可以留言或发信给我。