2016-08-31 2 views
1

私は自分のサーバ上にランダムな名前(fe. "8a4f5d61.jpg")の画像を持っており、与えられたGET引数を使ってそれらのファイルの名前を変更する必要があります。

だから私は、このようなURLがある場合:

http://my.server/8a4f5d61.jpg?attachement=custom_name.jpg

を、私は、Apacheはこのようにヘッダを追加したい:

ヘッダーのContent-処分:「添付ファイル、ファイル名= $ _GET ['添付ファイル'] '

ので、ユーザーは "custom_name.jpg"に既に名前が変更されたこのファイルをダウンロードします。

私はどのようにnginxのでは内部の.htaccess


からそのGET引数を取得することが、ここで私の作業は非常に簡単ですだ見当もつかない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?

答えて

2

私はそれをテストしたが、あなたのクエリが与えられた基準に一致した場合、理論的に、環境変数を設定し、後で、ヘッダーを設定するmod_headers' Headerディレクティブを使用していない:

%{file_name}eは環境値である
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の場合

+0

これは '[E = file_name:%1、L]'(plzがあなたの投稿を修正する)である必要があり、とてもうまく動作しています:)ありがとうございます! – GreggD

+0

@ a6r固定、ありがとう!私はコードに少なくとも1つの間違いがあると思っていました。 :) – hjpotter92

+1

'env = file_name'、おそらくサーバー関連のものを削除する必要があることを忘れてしまいました... – GreggD

関連する問題