我希望人们能够下载几个总结我正在教授的课程的文件。文件是pdf组织在这样的文件夹中:
.htaccess
01-science/
lesson-1/
notes.pdf
slides.pdf
lesson-2/
notes.pdf
slides.pdf
…
.htaccess
文件已强制使用以下命令下载文件:
<Files *.pdf>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
我提供了直接访问文件的网址,例如https://lessons.domain.my/01-science/lesson-1/notes.pdf
。但是,为了避免混淆,在下载时,我希望文件名以文件夹名称作为前缀,以便提供:
01-science-lesson-1-notes.pdf
01-science-lesson-1-slides.pdf
也许一个正则表达式可以做到这一点,但我无法得到哪一个...感谢您的帮助!
答案 0 :(得分:0)
将此代码放在主目录,htaccess
文件中:
RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)\.pdf$ /$1-$2-$3.pdf [L,NE,R=302]
如果一切顺利,请将302
更改为301
以获得永久重定向
答案 1 :(得分:0)
感谢这个answer,我找到了正确的.htaccess:
RewriteRule ^(.*)\.pdf$ - [E=FILENAME:$0]
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME}e"
</FilesMatch>
因此,网址https://lessons.domain.my/01-science/lesson-1/notes.pdf
会以notes.pdf
的名称下载文件01-science_lesson-1_notes.pdf
,该文件非常适合。
由于我不太了解.htaccess
语法,所以对于任何更好的建议或评论都是开放的......