Question

J'utilise un script PHP qui génère dynamiquement PNGs transparentes pour l'utilisation comme arrière-plans CSS à partir d'une chaîne de requête qui prend des valeurs RGBA et HSLA. Le script original se trouve , j'ai seulement ajouté le support ARFT.

Parce que les URL de fond avec les chaînes de requête PHP ne sont pas très joli, et parce qu'il semble briser l'IE 6 hack PNG transparent, je pensais d'utiliser mod_rewrite pour permettre le script d'être appelé quand un .png avec cette syntaxe est appelée :

/assets/colors/h[0-360 value]_s[0-100 value]_l[0-100 value]_a[0-100 value].png

qui serait réécrite à:

/assets/colors.php?h=[0-360 value]&s=[0-100 value]&l=[0-100 value]&a=[0-100 value]

Voici les questions je rencontre:

  • passer plusieurs variables avec mod_rewrite
  • à l'aide d'un trait de soulignement comme séparateur

Je sais que cela pourrait être fait en passant une seule variable puis exploser dans le script PHP, mais je préférerais que cela soit fait par Apache.

Merci à l'avance et si quelqu'un veut ma ARFT la version activée du script il suffit de demander. Quoi qu'il en soit, je vous recommande de le vérifier sur le site de son auteur.

Était-ce utile?

La solution

mod_rewrite correspondra à des choses accolades (), et vous pouvez vous référer à ces $ 1, $ 2, etc. dans l'ordre où ils ont été jumelés. Ainsi, vous pouvez l'utiliser pour extraire plusieurs variables simplement en les plaçant à l'intérieur des accolades.

Alors quelque chose comme cela fonctionnera pour vous,

RewriteRule ^assets/colors/h([0-9]{1,3})_s([0-9]{1,3})_l([0-9]{1,3})_a([0-9]{1,3}).png assets/colors.php?h=$1&s=$2&l=$3&a=$4 

([0-9]{1,3}) correspondra soit 1, 2 ou 3 des nombres 0-9 dans une rangée. Donc, « 3 », « 10 » et « 100 », etc. Mais il serait également correspondre à « 999 », de sorte que vous aurez besoin pour vous assurer que le fichier colors.php vérifie les valeurs sont dans les plages attendues, etc.

Autres conseils

Essayez ceci:

RewriteEngine on
RewriteRule /assets/colors/h([0-9]+)_s([0-9]+)_l([0-9]+)_a([0-9]+).png /assets/col.php?h=$1&s=$2&l=$3&a=$4 [QSA,L]

Je devais changeup mon nom de script pour faire ce travail. Parce que j'ai Options MultiViews, / actifs / couleurs / est toujours traitée par colors.php quelle que soit la configuration de mod_rewrite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top