2011-06-08 1 views
1

Donc, j'écris un générateur de miniatures à la volée pour un CMS et j'essaie de trouver la meilleure façon de gérer les demandes. Plus précisément, j'ai besoin de trouver le code apache pour un fichier htaccess qui va prendre toutes les demandes dans un dossier de vignettes et les envoyer dans un fichier thumbnail.php à la place.htaccess: demandes de répertoire spécifiques pour transférer vers le fichier PHP

Idéalement, il seulement vous expédier à thumbnail.php si la vignette n'existe pas, bien que vérifier l'existence du fichier dans apache soit au-delà de moi.

L'URL de la requête ressemblerait à ceci:

http://unknown_domain.com/unknown_folder/media/thumbnails/image-name.jpg?w=200&h=100&c=true

et les images seront stockées dans les vignettes quelque chose comme ça (ou pourrait être la même URL ci-dessous si cela fait plus de sens):

http://unknown_domain.com/unknown_folder/media/thumbnails/image-name-200-100-true.jpg

est ici le plus proche, je suis venu jusqu'à présent, je suppose que je mets ce htaccess dans le dossier des miniatures:

RewriteEngine on 
#RewriteBase /unknown_folder/media/thumbnails/ # optional, depends on your setup 

#Check for file existence here and forward if exists 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z-])-([0-9]+)-([0-9]+)-true.jpg$ thumbnail.php?w=$2&h=$2&c=true [LQSE] 

Merci pour toute aide fournie à l'avance!

+1

Qu'est-ce qui ne va pas avec ce que vous avez? Quel comportement, exactement, attendez-vous? Quel comportement voyez-vous réellement? – KOGI

Répondre

2

Je suppose que vous êtes à la recherche d'une expression rationnelle:

RewriteEngine on 
RewriteBase /unknown_folder/media/thumbnails/ # optional, depends on your setup 

#Check for file existence here and forward if exists 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z-]+)-([0-9]+)-([0-9]+)-true\.jpg$ thumbnail.php?w=$2&h=$3&c=true [L,QSA] 

Je ne l'ai pas testé, mais idéalement une demande de

/unknown_folder/media/thumbnails/bla-you-name-of-whatever-200-100-true.jpg 

devrait appeler le script thumbnail.php avec ses paramètres.

Modifié: Correction de certaines fautes de frappe et erreurs.

+0

Merci, c'est exactement ce que je cherchais. Cependant, il donne une erreur de serveur interne (500) quand je tente d'accéder à une image: 'http: // getdirectus.com/dev/media/thumbnails/test-200-100-true.jpg' – RANGER

+0

Je pense que c'est le. fichier htaccess. Vérifiez le journal des erreurs de votre serveur web, il devrait indiquer quelle ligne a une erreur. Les erreurs Regex sont également affichées. – hakre

+2

point '.' doit être échappé en tant que' \ .' et les drapeaux doivent être '[L, QSA]' à la fin. – anubhava

0

Je ne sais pas ce que la question est là, mais il y a quelques filtres vous devriez utiliser pour vérifier l'existence de fichiers ...

RewriteEngine on 

#Check for file existence here and forward if exists 
RewriteCond ^/(regex_here)/$ !-f 
RewriteCond ^/(regex_here)/$ !-d 
RewriteCond ^/(regex_here)/$ !-s 
RewriteCond ^/(regex_here)/$ !-l 

RewriteRule ^/(regex_here)/$ /thumbnail.php?w=$1&h=$2&c=$3 
Questions connexes