从 .htaccess 中访问 $_GET 参数
Access $_GET argument from inside .htaccess
我的服务器上有随机名称的图像(f.e。“8a4f5d61.jpg”),我需要使用给定的 GET 参数更改这些文件的名称。
所以如果我有这样的 URL:
我希望 Apache 像这样添加 header:
Header Content-Disposition: "attachement, filename=$_GET['attachement']"
因此用户将下载已重命名为 "custom_name.jpg" 的文件。
我不知道如何从 .htaccess 中获取 GET 参数
在 nginx 上非常简单,这是我的工作 nginx 配置:
location ~ ^/.*\.jpg$ {
if ($arg_inline) {
add_header Content-Disposition "inline; filename=$arg_inline";
}
if ($arg_attachement) {
add_header Content-Disposition "attachement; filename=$arg_attachement";
}
}
在 Apache 上使用 .htaccess 可以实现吗?
我没有测试过,但理论上,如果您的查询符合给定条件,则设置一个环境变量,然后使用 mod_headers
' Header 指令设置 header:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^attachment=(.+)$ [NC]
RewriteRule ^ - [E=file_name:%1,L]
Header always set Content-Disposition "attachement; filename=%{file_name}e" env=file_name
其中 %{file_name}e
是 file_name
的环境值。
我的服务器上有随机名称的图像(f.e。“8a4f5d61.jpg”),我需要使用给定的 GET 参数更改这些文件的名称。
所以如果我有这样的 URL:
我希望 Apache 像这样添加 header:
Header Content-Disposition: "attachement, filename=$_GET['attachement']"
因此用户将下载已重命名为 "custom_name.jpg" 的文件。
我不知道如何从 .htaccess 中获取 GET 参数
在 nginx 上非常简单,这是我的工作 nginx 配置:
location ~ ^/.*\.jpg$ {
if ($arg_inline) {
add_header Content-Disposition "inline; filename=$arg_inline";
}
if ($arg_attachement) {
add_header Content-Disposition "attachement; filename=$arg_attachement";
}
}
在 Apache 上使用 .htaccess 可以实现吗?
我没有测试过,但理论上,如果您的查询符合给定条件,则设置一个环境变量,然后使用 mod_headers
' Header 指令设置 header:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^attachment=(.+)$ [NC]
RewriteRule ^ - [E=file_name:%1,L]
Header always set Content-Disposition "attachement; filename=%{file_name}e" env=file_name
其中 %{file_name}e
是 file_name
的环境值。