欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

具有公共文件访问权限集的Drupal私有文件下载 system files files private 有大用 有大大用 有大大大用 有大大大大用

Drupal有两种允许用户下载文件的方式,它们是私有的公共的

在公开的情况下,任何人都可以打开文件,而Drupal则不参与下载过程。这意味着下载文件时不会记录任何统计信息或使用权限。每个文件均按名称引用。

私有文件访问意味着每次下载文件时都运行Drupal。这样可以记录下载内容并运行权限检查,以确保允许有问题的用户访问文件。每个文件所引用的路径都可以与原始文件名完全不同。

使用私有文件访问的主要问题是,如果您允许用户将图像上载到模板中,则可能会引起问题(例如标头图像和事物)。如果您将其打开并允许使用许多不同的文件,也可能导致严重的性能下降,因为每个文件都必须通过Drupal传递,以确定当前用户是否允许下载该文件。

私有文件的缺点是,这也意味着您不能仅对站点上的文档进行访问限制,因为对所有文件都设置了权限。

通过使用以下.htaccess规则,可以下载具有公共文件访问权限的私有文件。可以将其放置在IfModule mod_rewrite.c块中。

RewriteRule ^sites/drupal/files/([^/]*?)$  index.php?q=system/files/$1 [QSA]

如果要将文件夹用于特定的URL,则可以执行以下操作:

RewriteRule ^sites/www\.example\.com/files/([^/]*?)  $index.php?q=system/files/$1 [QSA]

该规则将告诉Apache,如果该文件位于files目录的根目录中,而不位于任何子目录中,则必须将文件名传递给Drupal。只要文件名中没有斜杠,正则表达式就返回一个字符串。这样,我们可以将根目录用于可下载文件,并允许在这些文件上使用权限和统计信息。sites / default / files目录的所有子目录都可以用于用户图像和主题项目,而不必引导Drupal。


来自 https://www.cainiaojc.com/note/qahf9x.html


普通分类: