1

我有以下 htaccess 文件:

<filesMatch "\.png$">
<ifModule mod_headers.c>
Header set Cache-Control "public"
Header set Content-Description "File Transfer"
Header set Content-Disposition "attachment"
Header set Content-Type "image/png"
Header set Content-Transfer-Encoding "binary"
</ifModule>
</filesMatch>

我想测试 %{QUERY_STRING} 而不是执行文件匹配。那可能吗?

4

1 回答 1

0

您将无法仅使用您的 htaccess 文件来执行此操作。您将需要编写脚本或其他内容来设置标头,然后使用以下内容将请求映射到脚本:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^dl=true$
RewriteRule ^(.*)\.png$ /image_dl.php?file=$1.png [L]

然后在你的 image_dl.php 脚本中:

<?php
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment');
header('Content-Type: image/png');
header('Content-Transfer-Encoding: binary');

$file = $_GET['file'];
header("Content-length: ".filesize($file));  

ob_clean();
flush();
readfile($file); 
?>
于 2012-10-05T19:43:23.343 回答