画像のディレクトリがあり、ブラウザで直接表示したり、ダウンロードしたりできます。
/gallery/gal_4254.jpg というファイルがあるとします。
/download/gal_4254.jpg を作成して、画像を表示するのではなく、画像のダウンロードをトリガーしたいと考えています。/download は空です。すべての画像は /gallery にあります。
ダウンロードディレクトリへのリクエストを他のファイルに正常にマップできます
<Directory /var/www/download>
RewriteEngine on
RewriteRule (.*)$ /gallery/$1
</Directory>
そして、設定することでギャラリーディレクトリにダウンロードを強制することができます
<Directory /var/www/gallery/>
ForceType "image/jpg"
Header set Content-Disposition "attachment"
</Directory>
したがって、ヘッダーの設定は問題ありません。私は実際には /gallery にヘッダーを持たせたくありません.
ただし、2つを組み合わせる必要があるため、リクエストは他のディレクトリのファイルにマップされ、ファイルには添付ヘッダーが与えられます。
#does not work - just views the image like when it is viewed directly
<Directory /var/www/download>
ForceType "image/jpg"
Header set Content-Disposition "attachment"
RewriteEngine on
RewriteRule (.*)$ /gallery/$1
</Directory>
書き換えセクションとヘッダー セクションの順序を変更しようとしましたが、役に立ちませんでした。リクエストが別のディレクトリに書き換えられると、ヘッダーが失われると思います。
Apacheでこれを行う方法に関する提案はありますか?
これはPHPでも実行できることを認識しているため、サーバーフォールトに対してここに投稿しました。PHPを使用したソリューションも大歓迎です。