2016-12-24 6 views
1

pretashop 1.4から1.6への移行後、すべての画像フォルダ構造が/img/p/*-*.jpgから/ img/p/*/*/*/*に移動しました。NGINXリライト変数を文字の配列として使用しますか?

私たちは古い構造へのイメージリンクを持っており、私はただルールを作りたいと思っています。

Exmaple古い構造:このURLからの/img/p/1256-5097.jpg

私はID 5097を得ることができますが、私はIMG/P/5にそれを分割するニート新しい画像foldesでそれを使用します/0/9/7/5097.jpg

ちょうどnginx書き換えモジュールを使用してIDを取得(スプリット)できますか?

答えて

1

rewriteディレクティブは正規表現を使用します。必要に応じて、例えば、URIを再構築し、その後、個別の数字をキャプチャする正規表現を指定します。

rewrite ^(/img/p/)\d+-(\d)(\d)(\d)(\d)(.jpg)$ $1$2/$3/$4/$5/$2$3$4$5$6; 

それは恐ろしい見えますが、それはのようにブレークダウン:

$1 = /img/p/ 
$2 = 5 
$3 = 0 
$4 = 9 
$5 = 7 
$6 = .jpg 

あなたがキャプチャする必要はありません。 $1$6の場合、結果にハードコードすることができます。

rewrite構文の場合はthis document、正規表現の場合はthis useful resourceを参照してください。

+0

Thx。 ITはそれを(\ d)と一緒に使うのは私の最初の考えでした。うまく働くだけで、ちょっと他のルールに変更されます。 – NicomUA

関連する問題