2012-03-07 15 views
1

Nginx経由で画像が生成されない場合は、スクリプトにリダイレクトしますが、この単純な問題には問題があります。 以下の設定を書きました(異なるバージョンを試しましたが、これが最後です)、それでも動作しません。 Nginx提供の画像

location /img/(\d+)\.(jpg|png|gif)$ { 
     root /path/to/img_dir; 
     expires max; 
     add_header Pragma public; 
     add_header Cache-Control "public"; 
     try_files $1.$2 http://site.com/generate_img/$1.$2; 
} 

はまた、このコードは try_filesのinsted使用:

if (!-f $document_root/$1.$2) { 
    rewrite^http://site.com/generate_img/$1.$2; 
} 

答えて

2
  1. try_filesは、外部のリダイレクトをサポートしていません。内部リダイレクトのみ。 内部の場所を使用する必要があります。

  2. あなたの現在地は正規表現ベースの場所ではありません。キャプチャは役に立たない。試してみてください:

    location ~* ^/img/([[:digit:]]+)\.(gif|jpe?g|png)$ { 
        try_files $1.$2 /generate_image/$1.$2; 
    } 
    

私はgenerate_imageが同じサーバー上にあると仮定しています。

+0

私はまだ404ページを受け取っています。リダイレクトを単純なhtmlページに設定しようとしましたが、変更はありませんでした。たぶんそれはドキュメントルートのパスについてですか? – zona

+0

'location〜* ^/image_dir /([[:digit:]] +)\。(jpe?g | png | gif)$ { \t root/path/to/domain/dir; \t try_files /image_dir/$1.$2 /test.html; } ' はこの設定を試しました – zona

関連する問題