在 htaccess 中重命名文件附件

Rename file attachment in htaccess

我想通过 GET 参数重命名请求的文件。

所以当我打电话时: (...)media/models/admin_test/1/image?文件名=blabla.png

它应该将请求文件的名称设置为"blabla.png"

我试过这个:

SetEnvIf Query_String "\?filename=(.+)$" FILENAME=
Header set Content-Type application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME}e"
UnsetEnv FILENAME

但是我的名字是 (null)。 有什么建议吗?

您可以在 root .htaccess 中尝试 mod_rewrite 规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} (?:^|&)filename=([^&]+) [NC]
RewriteRule ^ - [E=FILENAME:%1]

Header set Content-Type application/octet-stream
Header set Content-Disposition "attachment; filename=%{FILENAME}e"