2017-12-20 8 views
0

ここに私がしなければならないことがあります。私は自分のサーバに2セットの画像を提供する必要があります。画像の最初のセットは、サーバー上のフォルダにある実際のPNGファイルです(/realimages)。 2番目の画像セットは実際には存在しません。彼らが要求されると、私は要求されたイメージファイル名を取りたいと思っています。NginxのPHP scrptにPNGファイルリクエストを渡す

https://example.com/nosuchimage/img1.png 

/nosuchmageフォルダ(または他の場所より簡単にする場合)の内側に座ってのindex.phpスクリプトを介して画像を生成します。

このスクリプトは、以下

  • /realimagesフォルダ
  • から関連画像を撮像ない背景
  • を生成するPHP GDを使用背景
  • アップ機能する上で関連画像をスーパーインポーズ結果

このスクリプトは作成されており、完全に機能しています。私が知らないのは、/nosuchimageフォルダへのすべてのPNG画像要求を、スクリプトパラメータとして渡された元の要求でそのスクリプトにリダイレクトする方法です。

これは、書き換えルールを書き込むことを含むNGINXでの比較的簡単な設定問題です。しかし、NGINXの書き換えはまだ私にとっては非常に黒い芸術です。うまくいけば、ここの誰かが、書き換えルールが何をすべきかだけ教えてくれるはずです。

答えて

0

特定のフォルダのすべてのイメージをリダイレクトするには、設定ファイルで次のコードを使用します。

私の場合は、デフォルトのファイルを使用します。 /etc/nginx/sites-available/default

location ~ \/realimages/(.+\.png)$ { 
    return 302 $scheme://$server_name/nosuchimage/$1; 
} 

// Access: http://www.example.com/images/valdeirpsr.png (Exists & Redirect to /nosuchimage/valdeirpsr.png) 
// Access: http://www.example.com/images/valdeirpsr2.png (Not Exists & Redirect to /nosuchimage/valdeirpsr2.png) 

ちょうどあなたの設定ファイルに以下のコードを使用して、特定のフォルダに格納されていない画像のみをリダイレクトします。

location ~ \/realimages/(.+\.png)$ { 
    error_page 404 $scheme://$server_name/nosuchimage/$1; 
} 

// Access: http://www.example.com/images/valdeirpsr.png (Exists & Show Image) 
// Access: http://www.example.com/images/valdeirpsr2.png (Not Exists & Redirect to /nosuchimage/valdeirpsr2.png) 
関連する問題