我尝试下载不同的文件类型,如PDF,XLS,.jpg,.png等.直接从Joomla CMS通过网络浏览器.文档和文件,如Word,Excel,Powerpoint,PDF,.jpg,.png和文本都存储在Joomla DOCman,当用户想要一个文件,他们点击一个链接在DOCman菜单中的网站和文件被下载.我想得到的日期附加到文件名,当用户从创建的网站菜单中下载PDF、XLS、.jpg、.png等文件时,可能会出现这种情况。使用htaccess重写规则,在服务器级别可能会出现这种情况,因为浏览器用于保存文件的文件名包含在Content-Disposition头中:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
有没有可能重写该头附加到下载的文件名的日期?我尝试了下面的代码在htaccess文件的PDF文件类型,但它不像预期的工作.
RewriteEngine On
RewriteRule [^/]+\.pdf$ - [E=FILENAME:$0]
<FilesMatch "\.(?i:pdf)$">
Header set Content-Type application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME-.date('Y-m-d').}e"
</FilesMatch>
任何帮助,以获得正确的htaccess重写规则,以完成上述,将不胜感激。
1条答案
按热度按时间cedebl8k1#
是的,这是可能的。这是测试和工程。
Header指令的Apache文档显示,应该使用
%{VARNAME}e
说明符将环境变量放置在Header值中。但是,由于在我的代码示例中,该值是通过 ap_expr 表达式提供的,因此应该使用ap_expr函数env(或者可能是 reqenv)。Header指令文档指出,在 ap_expr 表达式中:函数调用使用%{funcname:arg}语法,而不是funcname(arg)。