Pregunta

Estoy usando un script PHP que genera dinámicamente archivos PNG transparentes para su uso como fondos CSS de una cadena de consulta que toma valores RGBA y HSLA. El guión original se puede encontrar aquí , no tengo apoyo HSLA solamente añadido.

Debido a que las direcciones URL de fondo con las cadenas de consulta de PHP no son muy bonita, y porque parece romper el IE 6 transparente truco PNG, pensé en usar mod_rewrite para permitir que el script se llama cuando un .png con esta sintaxis se llama :

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

que se reescribe a:

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

A continuación los temas que estoy encontrando:

  • pasar múltiples variables con mod_rewrite
  • mediante un subrayado como un delimitador

Sé que esto podría hacerse pasando una sola variable y luego explotar en el script PHP, sin embargo, yo preferiría que se haga por Apache.

Gracias de antemano y si alguien quiere mi HSLA habilitado versión del guión solo pregunte. De todos modos le recomiendo que se echa un vistazo en la página web de su autor.

¿Fue útil?

Solución

mod_rewrite coincidirá cosas en los apoyos (), y luego se puede hacer referencia a estos como $ 1, $ 2, etc en el orden en que fueron emparejados. Así que usted puede usar esto para extraer múltiples variables con sólo colocarlos dentro de llaves.

Así que algo como esto funcionará para usted,

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}) coincidirá con ya sea 1, 2 o 3 de los números 0-9 en una fila. Así "3", "10" y "100", etc., pero sería también coincidirá con "999", por lo que necesita para asegurarse de que los controles de archivos colors.php los valores están dentro de los rangos esperados, etc.

Otros consejos

Prueba esto:

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]

tuve que ChangeUP mi nombre script para hacer este trabajo. Porque tengo Options MultiViews, / activos / colores / siempre es manejado por colors.php independientemente de la configuración mod_rewrite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top