将路径名添加到下载文件名
Add path name to downloading file name
我希望人们能够下载几个总结我所教课程的文件。文件以 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>
我正在直接 URL 访问文件,例如 https://lessons.domain.my/01-science/lesson-1/notes.pdf
。但是,为了避免混淆,在下载时,我希望文件名以文件夹名称为前缀:
01-science-lesson-1-notes.pdf
01-science-lesson-1-slides.pdf
也许正则表达式可以做到这一点,但我不知道是哪一个……感谢您的帮助!
将此代码放入您的主目录 ,htaccess
文件 :
RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)\.pdf$ /--.pdf [L,NE,R=302]
如果一切正常,将 302
更改为 301
以获得永久重定向
多亏了这个 answer,我找到了正确的 .htaccess:
RewriteRule ^(.*)\.pdf$ - [E=FILENAME:[=10=]]
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME}e"
</FilesMatch>
因此 URL https://lessons.domain.my/01-science/lesson-1/notes.pdf
下载名称 01-science_lesson-1_notes.pdf
下的文件 notes.pdf
非常适合。
由于我不太了解 .htaccess
语法,因此欢迎任何更好的建议或评论...
我希望人们能够下载几个总结我所教课程的文件。文件以 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>
我正在直接 URL 访问文件,例如 https://lessons.domain.my/01-science/lesson-1/notes.pdf
。但是,为了避免混淆,在下载时,我希望文件名以文件夹名称为前缀:
01-science-lesson-1-notes.pdf
01-science-lesson-1-slides.pdf
也许正则表达式可以做到这一点,但我不知道是哪一个……感谢您的帮助!
将此代码放入您的主目录 ,htaccess
文件 :
RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)\.pdf$ /--.pdf [L,NE,R=302]
如果一切正常,将 302
更改为 301
以获得永久重定向
多亏了这个 answer,我找到了正确的 .htaccess:
RewriteRule ^(.*)\.pdf$ - [E=FILENAME:[=10=]]
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME}e"
</FilesMatch>
因此 URL https://lessons.domain.my/01-science/lesson-1/notes.pdf
下载名称 01-science_lesson-1_notes.pdf
下的文件 notes.pdf
非常适合。
由于我不太了解 .htaccess
语法,因此欢迎任何更好的建议或评论...