Nous utilisons actuellement un resizer d'image qui a été écrit en PHP. Le script de redimensionnement tire parti de la mise en cache et écrit les images redimensionnées générées dans un répertoire de cache (judicieusement nommé cache/
).RewriteRule basé sur l'existence d'un fichier avec un autre nom
Le processus est telle qu'une URL réécrite, par exemple:
domain.com/img/250x250/some-image.jpg
sera réécrite à:
domain.com/image.php?width=250&height=250&src=some-image.jpg&function=resizeCrop
intérieur image.php
, nous faisons un chèque pour voir si un fichier de correspondances le redimensionnement dans le répertoire cache/
. Toutes les images mises en cache sont stockées avec un nom de cachFunctionWidth_height_originalName
, donc pour l'exemple donné le fichier d'image générée à l'intérieur cache/
seraient nommés resizecrop250_250_some-image.jpg
Pour le moment, nous en utilisant la fonction de PHP fpassthru()
pour sortir le fichier dans le navigateur si existe. Si ce n'est pas le cas, nous utilisons une combinaison de fonctions GD et d'algorithmes pour afficher le fichier dans le navigateur.
Ma question est de savoir s'il nous sera possible de contourner complètement le image.php
si une image redimensionnée existe dans le répertoire cache
en utilisant HTACCESS (c'est un serveur Linux). Essentiellement, nous devons vérifier un formulaire de nom bastardized avant de servir la réécriture.
Par exemple, voici quelques pseudo-code de ce que nous aimerions réaliser, mais je ne pense pas qu'il soit possible:
- demande le fichier utilisateur> domain.com/img/250x250/some- image.jpg
- Vérifiez si le fichier existe
cache/resizecrop250_250_some-image.jpg
- Si elle ne, récrire à
cache/resizecrop250_250_some-image.jpg
- Si elle n'a pas, pour récrire
domain.com/image.php?width=250&height=250&src=some-image.jpg&function=resizeCrop
Si cela n'est pas possible via HTACCESS, toute autre suggestion serait la bienvenue.
'nous faisons un contrôle pour voir si un fichier correspond à la Redimensionner dans le cache /' pourquoi n'est pas '/ img/250x250/some-image.jpg' l'emplacement du fichier mis en cache? l'utilisation de php au lieu de no-php est presque certainement une solution sous-optimale à moins qu'il y ait une exigence non-mentionnée – AD7six