2016-12-21 8 views
1

ウェブプロジェクトは、いくつかの/ content/imgフォルダに静的コンテンツを持っています。/IMG/{いくつかのMD5} しかし場所フォルダ内: URLルールがある/コンテンツ/ IMG/{最初の2桁}/場所でNginx Regexpを使用する方法

url:  example.com/img/fe5afe0482195afff9390692a6cc23e1 
location: /www/myproject/content/img/fe/fe5afe0482195afff9390692a6cc23e1 

このnginxの場所が正しいがたくさんのないセキュリティ(シンボル点は、正規表現で良いではありません):

 location ~ /img/(..)(.+)$ { 
       alias $project_home/content/img/$1/$1$2; 
       add_header Content-Type image/jpg; 
     } 

次の位置がより正確であるが、動作しません:

 location ~ /img/([0-9a-f]\{2\})([0-9a-f]+)$ { 
       alias $project_home/content/img/$1/$1$2; 
       add_header Content-Type image/jpg; 
     } 

より正確なnginxの場所を見つけるためにエラーが見つかりました。

+0

てみ '/ IMG /([0-9A-FA -F] {2})([0-9a-fA-F] +)$ '([このデモ](https://regex101.com/r/3kpVyx/1)を参照してください)。 –

答えて

1

NGINXでサポートされている正規表現フレーバは、POSIX BREではなくPCREです。したがって、[chars]\{2\}のように、限定量の中カッコをエスケープしないでください。

使用

/img/([0-9a-fA-F]{2})([0-9a-fA-F]+)$ 
       ^^^ 

ここではPCRE regex demoです。

EDIT:この環境の中で、あなたは数量を制限使用することはできませんようだ、とあなたが行うことができ、すべてのサブパターンを繰り返すことです。

/img/([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]+)$ 
    ^^^^^^^^^^^^^^^^^^^^^^^^ 
+0

どうやってこの帽子を手に入れましたか? – MYGz

+0

@MohammadYusufGhazi:私はこのようなチャットをいくつかの質問や答えの下で受けていたことを覚えています。私は何をしたのか分かりませんが、すぐに私はこの帽子を手に入れました。 –

+0

ああ、あなたはそれらのコメントで多くのupvotesを得ましたか? – MYGz

関連する問題