Bonjour à tous.
Je travaille sur un projet où l'url des médias ressemblent à ça :
object/{ID}?assetprofile_pid={assetprofile_pid}&transformation={transformation}
l'asset assetprofile est un format de périphérique. exemple : smartphone, tablette, web
La transformation et un redimensionnement. exemple : icon, fullscreen, icon_xhdpi (Pour un périphérique en xhdpi)
Exemple :
- ID : "object:image_538484484ff10"
- assetprofile_pid : "wzap:smartphone"
- transformation : "icon_xhdpi"
- => URL :
object/object:image_538484484ff10?assetprofile_pid=wzap:smartphone&&transformation=icon_xhdpi
Jusque là tous va bien.
Chaque élément est bien identifié.
Le problème c'est qu'on a voulu utiliser des urls plus "simple"
object/asset/{partie_1_du_ID}-{partie_2_du_ID}-{partie_2_du_assetprofile_pid}_{transformation}.{ext}
Ce qui donne :
object/asset/wzobj-image_538484484ff10-smartphone_icon_xhdpi.jpg
On utilise la RewriteRule suivante pour faire fonctionner l'url précédente avec le vrai système.
RewriteRule ^object/asset/(.+)-(.+)-(.+)_(.+)(\.(.+)) object/$1:$2/data?assetprofile_pid=wzap:$3&transformation=$4&%1 [L]
Ce système fonctionnait jusqu'a ce que l'on utilise des transformations contenant des underscores (_)
En effet voici comment apache découpe l'url :
1 2 3
|
object/asset/ wzobj - image_538484484ff10 - smartphone_icon _ xhdpi .jpg
^object/asset/ (.+) - (.+) - (.+) _ (.+) (\.(.+)) |
Comme faire pour qu'il découpe l'url ainsi ?
1 2 3
|
object/asset/ wzobj - image_538484484ff10 - smartphone _ icon_xhdpi .jpg
^object/asset/ (.+) - (.+) - (.+) _ (.+) (\.(.+)) |
sachant que transformation peut avoir un underscores ou non.
Merci pour votre aide
Partager