我希望当用户下载位于我服务器上的所有 mp3 文件时,在文件名末尾添加“-xxx”。示例:
服务器上的文件:file.mp3
当用户下载时:file-xxx.mp3
我用谷歌搜索了一些非常接近我想要的东西:
https://forums.digitalpoint.com/threads/htaccess-rename-mp3.128317/
因为我不想局限于任何特定的文件夹,并且想动态重命名所有的.mp3,所以我尝试了这个:
RewriteEngine on
RewriteBase /
RewriteRule ([^.]+)-by-domain\.mp3$ $1.mp3 [L]
但由于某种原因,我无法使其工作,文件无法重命名。
任何帮助都将不胜感激。谢谢!
答案1
在我的服务器上测试时,以下内容有效
RewriteEngine 开启 重写库 / 重写规则 ^/(.*)-([0-9]+).mp3 /$1.mp3
它的工作原理如下 - RewriteRule 分为 4 个部分,
- 包括路径和文件名第一部分的前缀
- 这 ”-”
- 文件中的数字
- 文件的末尾部分(.mp3)
该脚本仅从原始文件中获取前缀 - 部分 ^/(.*),然后将其重建为新的 url($1 包含上面部分括号之间的部分)。
([0-9]+) 检测唯一编号,因此如果您以后想要做一些更花哨的事情,您可以编写(例如)一个 PHP 脚本,允许用户下载文件,并通过将重写规则更改为来记录有关该文件的信息
重写规则 ^/(.*)-([0-9]+).mp3 /path/process.php?mp3=$1&userid=$2
(当然,您也需要编写 php 脚本,但是上面的例子展示了重写规则如何将 URL 处理成部分的逻辑。)